What is an isomorphic IoT network?

Each component in an IoT network may be developed using specific programming languages, protocols, and frameworks.
Tools have uses. Let people use the tools they want. And let them use Tools that they are comfortable in.

Currently we cannot have a one-tool fix all. We cannot also have a one-set-of-tools fix all. Tools are used in different combinations by different developers.

A usecase example of when many tools get used. here

Having many tools is good. But it has its downsides :

  1. Steep Learning Curve for a small team. You have to learn different technologies for each module. You end up focusing on breadth over depth. But this problem is mild. I mean... make money... hire more people... problem solved! Very simple haha.
  2. When you switch from one job to another, it may mean learning a new stack of technologies. This is to make your cooperation with fellow workmates smooth... having the same development tools helps. You get the same bugs, you get the same error messages, you get similar features, same charges.... This problem is also mild. Technologies are somehow similar... so this transition is not so hard.
  3. The main problem of using many tools is that it makes it difficult to migrate functionality from one node to another. It makes it difficult to transfer functionality from one subsystem to another

But what do you mean by transfering functionality?
Why would you want to transfer functionality?
Does that mean that each node is equal to another? That is impossible

You cannot develop all the software with a consistent set of technologies. Meaning that you cannot run the same code in every node in the network.

What is the difference?

  1. Architecture
  2. OS/ Runtime environment
  3. Programming Language
  4. Communication Protocols

There is a difference between :

  1. Using one language and using one language differently in the many tools
  2. Using an underneath language (binary)

Higher integration costs? Higer integration costs?

"In this paper, we argue that a unifying software layer is needed to manage the complexity of IoT development"

Why would you want to use the same technology through out the whole architecture?
Why would you not want to?

Why would you want to run the same code in the cloud and in the edge?

  • edge computing (server functions need to be able to run in the embedded devices) - for example : intelligence at the edge

"Today, IoT application developers must be aware about the deployment context for their code, and they must be familiar with many different programming languages and virtual runtime environments and communication protocols"

  1. Developers have to write programs while keeping in mind the context in which those programs will run.

Example of many tools being used

  • iotspace
  • Canonical
  • Ujuzi kilimo
  • https://kokonetworks.com/careers/

I