Hello,
here my considerations about the questions you have
proposed:
> What are the IoT use cases you want to solve with
XMPP?
This is the smart-factory use case that I propose:
Industry 4.0 (this term refers to a vision of a "fourth
industrial revolution") is a concept related to smart
factories, which allow individual customer requirements to
be met. For example, in these smart factories, dynamic
business and engineering processes enable last-minute
changes to production and deliver, to be more flexible in
the production and to react efficiently to failures.
Furthermore, Industry 4.0 will address some other
important challenges, like resource and energy efficiency.
The Industry 4.0 revolution will be driven by the
increased use of information and communications technology
as part of production processes, through the integration
of hardware and software resources. Smart factories will
leverage concepts like virtualization and mobile
communication, enabling the introduction of new forms of
smart services.
Today, physical and virtual worlds can converge, thanks to
the fact that powerful and autonomous microcomputers are
being wirelessly networked with each other and with the
Internet. Particurarly, the so called Cyber-Physical
Systems (CPS)s are the main example of this integration.
They have three main features: computation, communication,
and control. These systems are the basis of Industry 4.0,
communicating wirelessly, but carrying out real, physical
processes. Furthermore, innovations in Internet protocols
(e.g. IPv6) provide a number of addresses, sufficent to
enable universal addressing of smart objects, through the
Internet. This allows to create the Internet of Things and
Services (IoTS), for interconnection of resources,
services and people. In the next years, the IoTS will
change manufacturing fundamentally in terms of
organization, technology and processes, introducing
approaches like Service Oriented Architecture (SOA),
virtualization, cloud computing and machine-to-machine
(M2M) communication. For this reason, major processes in
production will directly depend on the availability and
performance of IT components and services.
Technology used in smart factory scenario needs to provide
several characteristics: the monitoring must be lean, to
reduce the footprint of monitoring in terms of resource
consumption, CPU, memory and disk space. Indeed, to
monitor an infrastructure where embedded systems and CPS
are used on the shop floor, it is inadequate to use a
traditional, datacenter type of server. The monitoring
needs to be flexible, because needs to support the
dynamics and volatility by providing the ability to adapt
quickly to structural and functional changes. It must be
scalable, because today the IT in production is both
rather specialized and small, but, smart monitoring needs
to scale up to millions of components to be monitored.
Monitoring must be ubiquitous, because it needs to be
available to support the more distributed and pervasive
nature of systems in the context of smart factories.
Finally, it must be secure, to protect the data monitored
by the systems.
XMPP is a a technology that provides all the features
listed before: It allows lean monitoring because it
enables the use of an unique protocool for different
goals: messaging, data exchange, control and management.
The solution is flexible, because its naming and
addressability mechanisms are based on the use of JID,
which are not tighted with the position. XMPP is scalable,
because it can scale to thoousands of users, also using
only not expensive hardware. The protocol can be used to
enable the communication also on embedded devices, which
can be used for ubiquitous applications. Finally, XMPP
embeds natevily security mechanisms, like SSL and TLS for
authentication and crittography, which guarantees the
protection of the data exchanged and of the privacy of the
users. For this reason, XMPP can be used as the standard
protocol to enable Machine-to-Machine and Machine-to-Human
communication, inside smart-factories.
In an industry 4.0 scenario, a set of sensors can be
spread in a factory to monitor several environmental
parameters like temperature, humidity, light and noise. To
simplify the deployment of this set of sensors the
XEP-0347 can be used to safely install, configure, find
and connect massive amounts of Things together. All these
parameters measured may affect both the production process
(for products, like perishable goods) and the comfort of
the work environment of the workers. In this scenario, the
sensors spread can be connected (wireless) to
tiny-computer (i.e Raspberry-Pi) to send the data
monitored using the XEP-0323. The data collected are used
to monitor the status of the work environment. Thresholds
can be set to rise alarms in case some parameters exceed
the optimal values. Furthermore, using the XEP-0325, the
central control system can control actuators to try to
normilize the status, turning on/off devices or changing
the temperature of the cooling/heating system. Since this
system can affect the production process, it is important
that all the operations are executed in a secure way, in
order to avoid to allow attackers to access to the data
monitored or worstly to keep control of the actuators.
Beside the security provided by the mechanisms embedded in
the XMPP protocol, the XEP-0324 can be used to control the
acces to the different devices in the factory, in order to
limit it, based on the role of people.
> What are the strengths of XMPP wrt. IoT?
The main reasons that can lead to choose XMPP as
communication protocol for an IoT solution, in my opinion,
are:
- The fact that is a standard technology (standardized in
2004 by IETF), free and open, with a large community of
developers, which continuously extend the protocol.
- The support of the publish/subscribe paradigm, useful to
build an event-driven architecture.
- The possibility to use as clients, common chat clients
used in every day life by the users (like Pidgin).
- The possibility to unique name and address the entities
using XMPP accounts, not connected with the physical
location.
- The security mechanisms natively included in protocol
(TLS for encryption and SASL for authentication), both for
client-server and server-to-server communication.
Recently, recommendations have been made to ensure that
all the connections (both client-to-server and
server-to-server) use encryption.
- The possibility to have additional features typical of
the instant messaging protocols, like the presence
mechanism, which can be used not only to know in real time
the availability of the connected entities, but also to
have some additional info on their status (for example, a
device can be online, but not working).
-The scalability guaranteed by the protocol:
- Its “push” model of information transfer solves
serious scaling problems associated with traditional
HTTP-based polling approaches.
- An XMPP network can be composed by an unlimited
number of servers in order to balance the load of traffic
and every XMPP server can scale to handle thousands of
users,
also if installed in standard computers, without
requiring expensive hardware.
- Finally, open source XMPP servers can be installed
in the cloud, with also better scalability performances.
- The level of scalability provided by the protocol
is proved by the infrastructures that are currently using
it, as messaging protocol, like:
- Google Cloud Messaging (used with every
Android device)
- Google Cloud Printing
- WhatsApp
- Intel Common Connectivity Framework
- UPnP Forum
- OpenADR
Currently, there is no another solution providing all
these features together.
> What are the weaknesses of XMPP wrt. IoT?
I think what is generally considered weaknesses of xmpp
compared with other protocols, in the IoT scenario, are:
- The fact that XMPP is not a protocol designed for IoT
solutions, but a messaging protocol adapted to thi
scenario.
- The fact that the protocol is based on the use of xml
(with the overhead connected with this).
- The amount of traffic generated by the presence
mechanism, which makes it not adapt for system, where many
resource-constrained devices have to communicate.
> How could the weaknesses be mitigated?
> How fit the existing IoT XEPs into this picture?
I think that the current IoT XEPs are generally going in
the right direction to address the issues listed before.
In general, the introduction of a list of XEPs allow to
define more easly XMPP as an "IoT protocol", defining
standard ways to do IoT typical functionalities, like
discovery and provisioning. Furthermore, the introduction
of the EXI XEP (XEP-0322) and of the friendship concept
allow to mitigate the other two issues.
Finally, another way to mitigate the XMPP weakeness is to
draft "Interworking" specifications (i.e. specifying how
XMPP-IoT should be mapped to interact with other
protocols), to promote the use of XMPP in combination with
other procotols, with different strenghts/weaknesses).
Best Regards,
Davide
On Mon, 12 Dec 2016 21:22:58 +0100
Florian Schmaus <flo(a)geekplace.eu> wrote:
Hello everyone,
Rikard and I would like to start the second phase of the
IoT SIG and
invite you to participate in the IoT SIG, in order to
shape the
technical aspects of the IoT XMPP extensions protocols.
Every party
interested in XMPP in the Internet of Things is
welcomed. The rough
road-map is to collect IoT use cases and how they could
be solved using
XMPP in the first 2-3 meetings. After those virtual
meetings, everyone
is invited to meet face-to-face at the XMPP Standards
Foundation 21th
Summit, which will take place on the 2. and 3. February
2017 in
Brussels, Belgium [1]. The Summit is right before FOSDEM
2017 [2] and a
great opportunity to discuss how the existing IoT XEPs
should evolve.
Rikard and I looking forward to see you there. :)
The regular IoT SIG meetings will take place every 14
days using Jitsi
Meet. I'd like to see if we can schedule a first meeting
before
Christmas. Please use the following Doodle pool if you
are interested:
http://doodle.com/poll/y5d6h62y68gp3yf4. Note that we
will close the
poll by the end of the week. If you can't make it before
Christmas, then
don't worry: The next meeting will be in the second week
of 2017
(2017-01-09 - 2017-01-13). Please use the following
doodle in for this
time-frame:
http://doodle.com/poll/b58st8u5yw3ipges.
In order to prepare to the meeting, please try to answer
the following
questions:
- What are the IoT use cases you want to solve with
XMPP?
- What are the strengths of XMPP wrt. IoT?
- What are the weaknesses of XMPP wrt. IoT?
- How could the weaknesses be mitigated?
- How fit the existing IoT XEPs into this picture?
Regards
Florian
1:
https://wiki.xmpp.org/web/Summit_21
2:
https://fosdem.org/2017/