{"id":38375,"date":"2019-10-31T22:23:21","date_gmt":"2019-10-31T19:23:21","guid":{"rendered":"https:\/\/prohoster.info\/blog\/iot-tuman-i-oblaka-pogovorim-pro-tehnologii\/"},"modified":"2019-10-31T22:23:21","modified_gmt":"2019-10-31T19:23:21","slug":"iot-tuman-i-oblaka-pogovorim-pro-tehnologii","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/iot-tuman-i-oblaka-pogovorim-pro-tehnologii","title":{"rendered":"IoT, fog and cloud: shall we talk about technologies?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"IoT, fog and cloud: shall we talk about technologies?\" src=\"\/wp-content\/uploads\/2019\/09\/89eae3426589d2ed8041fd6dd26498cb.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>The advancement of technology in software and hardware, along with the emergence of new communication protocols, has led to the expansion of the Internet of Things (IoT). The number of devices is growing day by day, generating vast amounts of data. This creates a need for a convenient system architecture capable of processing, storing, and transmitting this data.<\/p>\n<p>Currently, cloud services are used for these purposes. However, the increasingly popular paradigm of fog computing can complement cloud solutions by scaling and optimizing the IoT infrastructure. <\/i><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Clouds can meet most IoT demands. For instance, they can provide monitoring services, rapid processing of any data volumes generated by devices, as well as their visualization. Fog computing, on the other hand, is more effective in solving real-time tasks. It ensures quick responses to requests and minimal latency in data processing. In other words, fog computing complements clouds and expands their capabilities.<\/p>\n<p>However, the main question is: how should all of this interact in the context of IoT? Which communication protocols will be most effective in operating within the unified IoT-Fog-Cloud system?<\/p>\n<p>Despite the apparent dominance of HTTP, many other solutions are used in IoT, Fog, and Cloud systems. This is due to the fact that IoT must combine the functional capabilities of various device sensors with security, compatibility, and other user requirements.<\/p>\n<p>There is simply no uniform understanding of a reference architecture and communication standard. Therefore, creating a new protocol or adapting an existing one for specific IoT tasks is one of the most important challenges facing the IT community.<\/p>\n<p>What protocols are currently in use and what can they offer? Let's find out. But first, let's discuss the principles of the ecosystem in which clouds, fog, and the Internet of Things interact.<\/p>\n<h3>IoT Fog-to-Cloud (F2C) Architecture<\/h3>\n<p>\nYou have likely noticed the significant efforts put into exploring the advantages and benefits associated with the rational and coordinated management of IoT, clouds, and fog. If not, here are three standardization initiatives for you: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.openfogconsortium.org\/\">OpenFog Consortium<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/en.ecconsortium.org\/Uploads\/file\/20180328\/1522232376480704.pdf\">Edge Computing Consortium<\/a><\/noindex> and <noindex><a rel=\"nofollow\" href=\"http:\/\/www.mf2c-project.eu\/\">mF2C H2020 EU project<\/a><\/noindex>. <\/p>\n<p>While earlier discussions focused solely on two levels, the cloud and end devices, the proposed architecture introduces a new tier\u2014fog computing. This fog level can be subdivided into several sublevels, depending on the specific resources or sets of policies that define the use of different devices within these sublevels.<\/p>\n<p>What could this abstraction look like? Here is a typical IoT-Fog-Cloud ecosystem. IoT devices send data to more powerful servers and computing devices to solve tasks that require low latency. In this system, clouds are responsible for handling tasks that require a large amount of computational resources or data storage space.<\/p>\n<p><img decoding=\"async\" alt=\"IoT, fog and cloud: shall we talk about technologies?\" src=\"\/wp-content\/uploads\/2019\/09\/c78ea915ac4743a3def5651778e77873.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSmartphones, smartwatches, and other gadgets can also be part of IoT. However, such devices typically use proprietary communication protocols from major developers. The data generated by the Internet of Things is transmitted to the fog level via the REST HTTP protocol, which ensures flexibility and functional compatibility when creating RESTful services. This is crucial in light of the need to maintain backward compatibility with existing computing infrastructure that operates on local computers, servers, or server clusters. Local resources, called 'fog nodes,' filter the received data and process it locally or forward it to the cloud for further computation.<\/p>\n<p>Clouds support various communication protocols, with AMQP and REST HTTP being the most commonly encountered. Given that HTTP is well-known and designed for the Internet, one might wonder, 'Should it be used for working with IoT and fog?' However, this protocol has performance issues. More on this later.<\/p>\n<p>In general, there are two communication protocol models suitable for our system. These are request-response and publish-subscribe. The first model is more widely known, especially in client-server architecture. The client requests information from the server, which receives the request, processes it, and returns a response message. REST HTTP and CoAP protocols operate according to this model.<\/p>\n<p>The second model emerged from the need to provide asynchronous, distributed, loosely coupled connections between data-generating sources and their recipients.<\/p>\n<p><img decoding=\"async\" alt=\"IoT, fog and cloud: shall we talk about technologies?\" src=\"\/wp-content\/uploads\/2019\/09\/acf3b411fb9a0b7a61cf0188e4c29292.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nThe model involves three participants: the publisher (data source), the broker (dispatcher), and the subscriber (recipient). Here, the client acting as a subscriber does not need to request information from the server. Instead of sending requests, it subscribes to certain events in the system via the broker, which is responsible for filtering all incoming messages and routing them between publishers and subscribers. When an event related to a particular topic occurs, the publisher publishes it to the broker, which sends the data to the subscriber on the requested topic.<\/p>\n<p>Essentially, this architecture is event-driven. Such an interaction model is particularly interesting for applications in IoT, cloud, and fog computing due to its ability to ensure scalability and simplify relationships between various devices, enabling dynamic 'many-to-many' and asynchronous communication. Some of the most well-known standardized messaging protocols that utilize the 'publish-subscribe' model include MQTT, AMQP, and DDS.<\/p>\n<p>It is clear that the 'publish-subscribe' model has numerous advantages:<\/p>\n<ul>\n<li>Publishers and subscribers do not need to be aware of each other\u2019s existence;<\/li>\n<li>One subscriber can receive information from many different publishers, while one publisher can send data to many different subscribers (the 'many-to-many' principle);<\/li>\n<li>The publisher and subscriber do not need to be active at the same time to exchange data, as the broker (acting as a queue system) can store the message for clients that are currently offline.<\/li>\n<\/ul>\n<p>\nHowever, the 'request-response' model also has its strengths. In cases where the server\u2019s capacity to handle multiple client requests is not an issue, it makes sense to use already proven reliable solutions.<\/p>\n<p>There are also protocols that support both models. For instance, XMPP and HTTP 2.0 support the 'server push' option. The IETF has also released CoAP. In an attempt to address messaging problems, several other solutions have been developed, such as the WebSockets protocol or using HTTP over QUIC (Quick UDP Internet Connections).<\/p>\n<p>In the case of WebSockets, while it is used for real-time data transmission from the server to the web client and provides persistent connections with simultaneous bidirectional communication, it is not intended for devices with limited computing resources. QUIC also deserves attention, as this new transport protocol offers many new possibilities. However, since QUIC is not yet standardized, it is premature to predict its potential applications and impact on IoT solutions. Therefore, we will keep WebSockets and QUIC in mind for the future, but we won't delve into them for now.<\/p>\n<h3>Who is the most beloved in the world: comparing protocols<\/h3>\n<p>\nNow let's talk about the strengths and weaknesses of the protocols. To jump ahead, we should clarify that there is no single obvious leader. Each protocol has its own advantages and disadvantages.<\/p>\n<p><b>Response Time<\/b><\/p>\n<p>One of the most important characteristics of communication protocols, especially concerning the Internet of Things, is response time. However, there is no unequivocal winner among existing protocols that demonstrates the lowest latency under varying conditions. Nonetheless, there are a plethora of studies and comparisons of the capabilities of the protocols.<\/p>\n<p>For example, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.researchgate.net\/publication\/323943358_Performance_Analysis_of_Internet_of_Things_Protocols_Based_FogCloud_over_High_Traffic\">results <\/a><\/noindex>Comparisons of the performance of HTTP and MQTT for IoT showed that the response time for requests in MQTT is lower than in HTTP. Furthermore, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.researchgate.net\/publication\/303188719_Comparison_of_two_lightweight_protocols_for_smartphone-based_sensing\">when studying <\/a><\/noindex>the round-trip time (RTT) for MQTT and CoAP, it was found that the average RTT of CoAP is 20% lower than that of MQTT.<\/p>\n<p>Other <noindex><a rel=\"nofollow\" href=\"https:\/\/ieeexplore.ieee.org\/document\/7740559\">an experiment <\/a><\/noindex>RTT for MQTT and CoAP protocols was tested in two scenarios: a local network and an IoT network. It turned out that the average RTT is 2-3 times higher in the IoT network. MQTT with QoS0 showed a lower result compared to CoAP, while MQTT with QoS1 demonstrated a higher RTT due to ACK at the application and transport levels. For different QoS levels, latencies in a non-congested network for MQTT were in milliseconds, while for CoAP it was in hundreds of microseconds. However, it's worth noting that when operating in less reliable networks, MQTT, which runs over TCP, will yield entirely different results.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.diva-portal.org\/smash\/get\/diva2:1092136\/FULLTEXT01.pdf\">Comparison <\/a><\/noindex>The response times of AMQP and MQTT protocols with increased payload showed that under light loads, the level of latency was almost the same. However, when transmitting large volumes of data, MQTT demonstrated lower response times. In another case, <noindex><a rel=\"nofollow\" href=\"http:\/\/www.tfzr.rs\/esociety\/issues\/eSocietyVol3No1.pdf#page=26\">study <\/a><\/noindex>CoAP was compared to HTTP in a scenario of machine-to-machine communication involving devices deployed on vehicles equipped with gas sensors, weather sensors, GPS, and mobile network interfaces (GPRS). The time required to transmit a CoAP message over the mobile network was almost three times shorter than the time needed for HTTP messages.<\/p>\n<p>Research was conducted comparing not two, but three protocols. For example, <noindex><a rel=\"nofollow\" href=\"https:\/\/ieeexplore.ieee.org\/document\/7496622\">comparisons <\/a><\/noindex>the performance of IoT protocols MQTT, DDS, and CoAP in a medical application scenario utilizing a network emulator. DDS outperformed MQTT in terms of telemetry delay tested under various poor network conditions. CoAP, based on UDP, performed well for applications that required rapid response; however, due to its UDP basis, there was significant unpredictable packet loss.<\/p>\n<p><b>Throughput<\/b><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.researchgate.net\/publication\/267636202_Performance_evaluation_of_MQTT_and_CoAP_via_a_common_middleware\">Comparison <\/a><\/noindex>The efficiency of MQTT and CoAP in terms of bandwidth usage was assessed by counting the total amount of data transmitted per message. CoAP exhibited lower throughput than MQTT when transmitting small messages. However, when comparing the protocols based on the ratio of useful information bytes to the total number of bytes transmitted, CoAP proved to be more efficient.<\/p>\n<p>Upon <noindex><a rel=\"nofollow\" href=\"https:\/\/ieeexplore.ieee.org\/document\/7496622\">analysis <\/a><\/noindex>of bandwidth usage for MQTT, DDS (with TCP as the transport protocol), and CoAP revealed that CoAP generally had comparatively lower bandwidth consumption, which did not increase with higher packet loss or increased network latency, unlike MQTT and DDS, where an increase in bandwidth usage was observed under the mentioned scenarios. In another scenario, a large number of devices were involved in transmitting data simultaneously, typical in IoT environments. The results indicated that for higher loads, CoAP is the better option.<\/p>\n<p>Under light load, CoAP used the least bandwidth, followed by MQTT and REST HTTP. However, as payload sizes increased, REST HTTP yielded the best results.<\/p>\n<p><b>Power consumption<\/b><\/p>\n<p>Energy consumption is always a significant concern, especially in IoT systems. If <noindex><a rel=\"nofollow\" href=\"https:\/\/ieeexplore.ieee.org\/document\/7899537\">we compare <\/a><\/noindex>the energy consumption of MQTT and HTTP, HTTP \"consumes\" considerably more. CoAP is more <noindex><a rel=\"nofollow\" href=\"https:\/\/www.mdpi.com\/1424-8220\/16\/12\/2044\/htm\">energy-efficient <\/a><\/noindex>compared to MQTT, enabling better power management. In simple scenarios, MQTT is more suitable for information exchange in IoT networks, especially when there are no power constraints.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/cgweb1.northumbria.ac.uk\/SubjectAreaResources\/KF7046\/papers\/review\/iot\/lpb15.pdf\">Other <\/a><\/noindex>An experiment which compared the capabilities of AMQP and MQTT on a testbed in a mobile or unstable wireless network showed that AMQP offers more security options, while MQTT is more energy-efficient.<\/p>\n<p><b>Security<\/b><\/p>\n<p>Security is another crucial issue raised when discussing the Internet of Things and fog\/cloud computing. The security mechanism is typically based on TLS for HTTP, MQTT, AMQP, and XMPP, or DTLS for CoAP, with both options being supported by DDS.<\/p>\n<p>TLS and DTLS begin with the process of establishing a connection between the client and server sides to exchange supported cipher suites and keys. Both parties negotiate the suites to ensure that subsequent communication occurs over a secure channel. The difference between them lies in minor modifications that allow DTLS, based on UDP, to operate over unreliable connections.<\/p>\n<p>Upon <noindex><a rel=\"nofollow\" href=\"http:\/\/www.isg.rhul.ac.uk\/tls\/lucky13.html\">In testing attacks<\/a><\/noindex> on several different implementations of TLS and DTLS, it was found that TLS performed better. Attacks on DTLS were more successful due to its fault tolerance.<\/p>\n<p>However, the biggest issue with these protocols is that they were not originally designed for use in IoT and were not meant to operate in fog or cloud environments. Through handshake exchanges, they add additional traffic with each connection establishment, draining computational resources. On average, there is an increase of 6.5% for TLS and 11% for DTLS in overhead compared to unprotected communication. In resource-rich environments, which are typically located in <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cloud4y.ru\/cloud-hosting\/cloud-server\/?utm_source=habr&amp;utm_medium=referral&amp;utm_campaign=article\">the cloud <\/a><\/noindex>In this context, it won't be a problem, but the connection between IoT and fog levels becomes an important limitation.<\/p>\n<p>What should be chosen? There is no definitive answer. MQTT and HTTP seem to be the most promising protocols, as they are considered relatively more mature and stable solutions for IoT compared to others.<\/p>\n<h3>Solutions based on a single communication protocol<\/h3>\n<p>\nThe practice of single-protocol solutions has many downsides. For instance, a protocol that meets a limited environment might not work in a domain with strict security requirements. With this in mind, we must discard almost all possible single-protocol solutions in the Fog-to-Cloud ecosystem in IoT, except for MQTT and REST HTTP.<\/p>\n<p><b>REST HTTP as a single-protocol solution<\/b><\/p>\n<p>There is a good example of request and response interaction in REST HTTP within the IoT-to-Fog context: <noindex><a rel=\"nofollow\" href=\"https:\/\/dl.acm.org\/citation.cfm?doid=3152130.3152140\">smart farm<\/a><\/noindex>. Animals are provided with wearable sensors (IoT client, C) and managed through cloud computing by the smart farming system (Fog server, S).<\/p>\n<p>The POST method header specifies the resource to be modified (\\\/farm\\\/animals), as well as the HTTP version and content type, which in this case is a JSON object representing the livestock that the system should manage (Dulcinea\\\/cow). The server's response indicates that the request was successful, returning an HTTPS status code of 201 (resource created). The GET method should only specify the requested resource in the URI (for example, \\\/farm\\\/animals\\\/1), which returns the JSON representation of the animal with that identifier from the server. <\/p>\n<p>The PUT method is used when there is a need to update a specific resource record. In this case, the resource specifies the URI for the parameter to be changed, along with the current value (for instance, indicating that the cow is currently walking, \\\/farm\\\/animals\\\/1? state=walking). Finally, the DELETE method is used similarly to the GET method, but simply removes the resource as a result of the operation. <\/p>\n<p><b>MQTT as a single-protocol solution<\/b><\/p>\n<p><img decoding=\"async\" alt=\"IoT, fog and cloud: shall we talk about technologies?\" src=\"\/wp-content\/uploads\/2019\/09\/529857b556ea5a186ac1519e2804d1b8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLet's take the same smart farm, but instead of REST HTTP, we use the MQTT protocol. A local server with the Mosquitto library installed serves as the broker. In this example, a simple computer (designated as the farm server) Raspberry Pi acts as the MQTT client, implemented through the installation of the MQTT Paho library, which is fully compatible with the Mosquitto broker.<\/p>\n<p>This client corresponds to the IoT abstraction level representing a device with discovery and computation capabilities. The broker, on the other hand, corresponds to a higher abstraction level representing a fog computing node characterized by greater processing and data storage capabilities.<\/p>\n<p>In the proposed scenario of the \"smart farm,\" the Raspberry Pi connects to an accelerometer, GPS, and temperature sensors, publishing data from these sensors to the fog node. As you probably know, MQTT views topics as a hierarchy. One MQTT publisher can publish messages to a specific set of topics. In our case, there are three. For the sensor that measures the temperature in the animal shed, the client selects the topic (animalfarm\/shed\/temperature). For the sensors that measure GPS location and animal movement through the accelerometer, the client publishes updates (animalfarm\/animal\/GPS) and (animalfarm\/animal\/movement).<\/p>\n<p>This information will be sent to the broker, which can temporarily store it in a local database in case another interested subscriber appears later.<\/p>\n<p>In addition to the local server acting as the MQTT broker in the fog, to which Raspberry Pi clients send data from sensors, there can be another MQTT broker at the cloud level. In this case, the information sent to the local broker may be temporarily stored in a local database and\/or sent to the cloud. The fog MQTT broker in this situation is used to link all data with the cloud MQTT broker. With this architecture, a mobile app user can be subscribed to both brokers.<\/p>\n<p>In the event of a connection failure with one of the brokers (for example, cloud-based), the end user will receive information from another (fog-based). This is a characteristic feature of combined fog and cloud computing systems. By default, the mobile application can be configured to first connect to a fog MQTT broker, and in case of failure, to connect to the cloud MQTT broker. This solution is just one of many in IoT-F2C systems. <\/p>\n<h3>Multiprotocol Solutions<\/h3>\n<p>\nSingle-protocol solutions are popular due to their easier implementation. However, it is clear that in IoT-F2C systems it makes sense to combine different protocols. The idea is that different protocols can operate at different levels. For example, let\u2019s consider three abstractions: the IoT, fog, and cloud computing levels. Devices at the IoT level are generally regarded as constrained. For this review, let's consider IoT levels as the most constrained, cloud as the least constrained, and fog computing as 'somewhere in between.' Thus, between IoT and fog abstractions, the current protocol solutions include MQTT, CoAP, and XMPP. Between fog and cloud, on the other hand, AMQP is one of the main protocols used along with REST HTTP, which, due to its flexibility, is also employed between IoT and fog layers. <\/p>\n<p>The primary challenge here is the functional compatibility of protocols and the simplicity of translating messages from one protocol to another. Ideally, in the future, the architecture of the internet of things with cloud and fog resources will be independent of the communication protocol used and will ensure good interoperability among different protocols.<\/p>\n<p><img decoding=\"async\" alt=\"IoT, fog and cloud: shall we talk about technologies?\" src=\"\/wp-content\/uploads\/2019\/09\/cddc564cad572966002ae22eff8cb99d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nSince this is not the case at the moment, it makes sense to combine protocols that do not have significant differences. To this end, one potential solution is based on the combination of two protocols that adhere to the same architectural style, REST HTTP and CoAP. Another proposed solution is based on the combination of two protocols that offer interaction according to the 'publish-subscribe' model, MQTT and AMQP. Utilizing close concepts (both MQTT and AMQP use brokers, while CoAP and HTTP use REST) simplifies the implementation of these combinations and requires less effort in integration.<\/p>\n<p><img decoding=\"async\" alt=\"IoT, fog and cloud: shall we talk about technologies?\" src=\"\/wp-content\/uploads\/2019\/09\/395bc75880a154aeab7b61d043476802.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFigure (a) shows two request-response models, HTTP and CoAP, and their potential placement in the IoT-F2C solution. Since HTTP is one of the most well-known and adapted protocols in modern networks, it is unlikely to be completely replaced by other messaging protocols. Among the nodes representing powerful devices that exist between the cloud and the fog, REST HTTP is a sensible solution.<\/p>\n<p>On the other hand, for devices with limited computational resources that interface between the fog and IoT layers, it is more efficient to use CoAP. One significant advantage of CoAP is its compatibility with HTTP, as both protocols are based on REST principles.<\/p>\n<p>Figure (b) illustrates two 'publish-subscribe' interaction models in a scenario, including MQTT and AMQP. Although hypothetically both protocols could be used for communication between nodes at each level of abstraction, their positioning should be determined based on performance. MQTT was designed as a simplified protocol for devices with limited computational resources, making it suitable for communication between IoT and fog. AMQP is better suited for more powerful devices, which would ideally position it between fog and cloud nodes. Instead of MQTT, XMPP can be used in IoT, as it is considered lightweight. However, it is not as widely used in such scenarios.<\/p>\n<h3>Conclusions<\/h3>\n<p>\nIt is unlikely that any one of the examined protocols will be sufficient to cover all communications in the system, from devices with limited computational resources to cloud servers. Research has shown that the two most promising options that developers often utilize are MQTT and RESTful HTTP. These two protocols are not only the most mature and stable, but also encompass a wealth of well-documented and successful implementations and online resources.<\/p>\n<p>Thanks to its stability and simple configuration, MQTT is a protocol that has proven its superior performance over time when used at the IoT level with constrained devices. In parts of the system where limited connectivity and battery consumption are not a concern, such as in certain fog computing scenarios and most cloud computing environments, RESTful HTTP is a straightforward choice. CoAP should also be considered, as it is rapidly evolving as an IoT messaging standard, and it is quite likely that in the near future it will achieve a level of stability and maturity similar to MQTT and HTTP. However, the standard is currently evolving, which comes with short-term compatibility issues.<\/p>\n<p><b>What else is useful to read in the blog <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cloud4y.ru\/?utm_source=habr&amp;utm_medium=referral&amp;utm_campaign=article\">Cloud4Y<\/a><\/noindex><\/b><\/p>\n<p>\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/cloud4y\/blog\/466755\/\">The computer will make you delicious food<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/464155\/\">AI helps study Africa's animals <\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/cloud4y\/blog\/465251\/\">. This means that the major internet giants are getting bigger, accumulating more and more information, and such leaks are akin to informational atomic explosions. This has never happened before, and here we go again. Yet, although many understand there are risks, they will continue to trust their data to third-party companies. Firstly, there aren't really any alternatives, and secondly, those companies promise that they have patched all the holes and that nothing like this will ever happen again.<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/461713\/\">4 ways to save on cloud backups<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/cloud4y\/blog\/467769\/\">About a unified federal information resource containing population data<\/a><\/noindex><\/p>\n<p>Subscribe to our <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/cloud4y\">Telegram<\/a><\/noindex>-channel so you won\u2019t miss another article! We write no more than twice a week and only when necessary.<br \/>\n<br \/>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/cloud4y\/blog\/467711\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0441\u043e\u0444\u0442\u0430 \u0438 \u0436\u0435\u043b\u0435\u0437\u0430, \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 \u0441\u0432\u044f\u0437\u0438 \u043f\u0440\u0438\u0432\u0435\u043b\u0438 \u043a \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044e \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u0432\u0435\u0449\u0435\u0439 (IoT). \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0440\u0430\u0441\u0442\u0451\u0442 \u0434\u0435\u043d\u044c \u043e\u0442\u043e \u0434\u043d\u044f, \u0438 \u043e\u043d\u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 \u043e\u0431\u044a\u0451\u043c \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u0432 \u0443\u0434\u043e\u0431\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c, \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435. \u0421\u0435\u0439\u0447\u0430\u0441 \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u0446\u0435\u043b\u0435\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b. \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0449\u0430\u044f\u0441\u044f \u0432\u0441\u0451 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28806,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-38375","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0441\u043e\u0444\u0442\u0430 \u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/iot-tuman-i-oblaka-pogovorim-pro-tehnologii\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47IoT, \u0442\u0443\u043c\u0430\u043d \u0438 \u043e\u0431\u043b\u0430\u043a\u0430: \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0441\u043e\u0444\u0442\u0430 \u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/iot-tuman-i-oblaka-pogovorim-pro-tehnologii\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:23:21+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:23:21+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47IoT, fog, and clouds: shall we talk about technology? | ProHoster","description":"The development of technologies in the software field and.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/iot-tuman-i-oblaka-pogovorim-pro-tehnologii","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47IoT, \u0442\u0443\u043c\u0430\u043d \u0438 \u043e\u0431\u043b\u0430\u043a\u0430: \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438? | ProHoster","og:description":"\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0441\u043e\u0444\u0442\u0430 \u0438.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/iot-tuman-i-oblaka-pogovorim-pro-tehnologii","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:23:21+00:00","article:modified_time":"2019-10-31T19:23:21+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38375","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 21:45:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:10:24","updated":"2026-01-23 21:45:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/38375","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=38375"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/38375\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/28806"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=38375"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=38375"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=38375"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}