thanks for asking the question and giving us the opportunity to
discuss some of the advancements provided by FIWARE.
Let me go to the issues your raised and your arguments. Then I try
to point out the advantages of FIWARE.
(a) Hardware Heterogeneity Problem
I agree that one on the issues to solve is hardware heterogeneity.
There are other ranging from global identifier, discovery, fast
control loops, Cloud mashups, large scale distribution,
scaling to Billion of Objects - just to name a few.
(b) Existing Systems
You mention lot's of different systems ranging from BACnet/WS to 6LowPAN.
I think you will agree that they are NOT doing all the same. And that
they in many cases created for a specific use and a specific deployment.
The amount of different systems shows basically how old M2M is actually.
Example 6LowPAN: target is to have a IP layer on top of a low-bitrate
wireless network. It is optimized for compressing IPv6 in a few bytes.
While good for its special use case, I doubt that it makes sense to use
it with a wired infrastrucutre or over a 3G/4G/5G network. I don't think
it is suitable in an Cloud environment, for integrating IoT into the
Internet-of-Services, or other aspects.
(c) Similar problems in a total different areas
Let me point you to another area in which we have a similar observation -
many (legacy) systems, no agreement on a single one. I am talking about
programming languages. But you can replace it with OS, databases, ...
There are thousands programming languages out there. Some obscure, some useful, some outdated,
some specialized. Some of the real important new ones came with real
important advancements in the understanding of programming, in having
ideas how to avoid common errors, or on how to do support libraries right.
- C was born to have something better then Assembler.
- Pascal was invented to show the quality of structured programming.
- Java was doing object-oriented programming in a (still) procedural environment
right (or maybe just better ?) and also improved a lot stability and
to some extend portability
So at the end, they are not all born equal. They are created for specific purposes
with a specific target environment in mind.
So why are some more successful then others? Maybe because they do a few things
better then their competition, maybe they simply spotted a change in the
typical usage environment faster then others and provide respective abstraction.
They win, because the provide additional value to the programer, e.g. by being
more productive or by easier solving specific aspects.
Java was really a step forward for the Internet. Simple concepts as namespace
bound to DNS domains helped to isolated the development effort from many people
so that the resulting code could be much easier integrated without big renaming.
By now I hopefully have established that concrete system are solving problems they are
designed for, and that in a changing world new system might be able to deal ... (more)