“IDM is a virtual-network protocol that supports
peer-to-peer communication between devices connected to
any type of network. IDM integrates addressing for
node, process and resource in a single identifier. The
transport and native network protocols can be avoided in many
situations”
Over many protocols
Despite some attempts to use IP everywhere, many vendors and
technologies will still create and use other
domain-dependent protocols. IDM can use these
underlying protocols to reach the destination service. Over
SSL, WebSockets, ZigBee, nRF24, RS485, RS232,
BlueTooth... or any other protocol that can carry a message
between two remote or neighbor peers. Of course, also over
TCP and UDP protocols.
Drop complexity
Using the correct endpoints, you don't need to care about
conections, sockets, resources, handlers... Just focus
on writing your application, and let IDM handle the
communications part! Also, using ZeroC Ice's intuitive IDL (called
Slice),
it's easy to define the contract between clients and
servers.
Flexible addressing
The variable-length address scheme, from 8 to
128 bits suits
your needs.
You can create networks of any scale, from a few tens to
trillions, but when you have a small deployment you may save
valuable bytes in headers and parameters.
Talk to everything
IDM is a true IoT.
The messages may travel from any to any, doesn't
matter the place, network or device (like Internet
does). Without a cloud-centric data repository, without
complex stateful bridges... Just messages through the
inter-network.
Made to connect your world
IDM is built upon ZeroC Ice. With
implementations for C++, C#, Java, JS, Objective-C, PHP,
Python and Ruby, its easy to fit in almost every
platform.
Ready for constrained devices
IDM requires a very low footprint. Both services and
clients may be implemented in highly
resource-constrained devices, as low as Class 0
hardware (like Arduino UNO, 32 KiB code, 2 KiB RAM,
see RFC 7228).
You can use our
IceC
(Ice for Constrained devices), available for Arduino,
ESP8266 and other platforms.
Just domains
Each incompatible technology or isolated network is
a domain. Domains are interconnected by means of
stateless virtual routers (sometimes called edge
routers). For example, the whole public Internet may be
seen as a single domain.
Virtual infrastructure
The IDM routers are services able to forward IDM
messages between domains, despite of their encapsulation. The
router behavior depends on flow specs, that are
managed by a Controller. This takes some ideas from
OpenFlow
and SDN.
Everything is an object
We see the IoT as an OO
infrastructure. Any sensor, actuator or filter is an object,
that is, it has a well known interface. IDM is a protocol that
directly encapsulates invocations to these objects.