=Paper=
{{Paper
|id=Vol-3226/paper21
|storemode=property
|title=Membrane System as a Communication Interface between IoT Devices
|pdfUrl=https://ceur-ws.org/Vol-3226/paper21.pdf
|volume=Vol-3226
|authors=Šárka Vavrečková
|dblpUrl=https://dblp.org/rec/conf/itat/Vavreckova22
}}
==Membrane System as a Communication Interface between IoT Devices ==
Membrane System as a Communication Interface between
IoT Devices
Šárka Vavrečková1
1
Silesian University in Opava, Bezručovo nám. 13, Opava, Czech Republic
Abstract
Membrane systems can be used to describe transfer of objects between different locations (membranes) and their eventual
transformation. Network transmission protocols provide something similar, especially the transfer of data. In this paper, we
describe the use of a membrane system for modeling data transmission between IoT devices, while it is possible to take this
model as a generalization of the transmission operation transferable to other protocols or to various programming languages.
The paper also discusses the possibility of using rules of the membrane system to create a simple firewall.
Keywords
membrane systems, internet of things, protocol, membrane firewall
1. Introduction dent of each other and work in parallel. Parallel pro-
cessing can also be described using membrane systems,
Membrane computing is a framework of parallel dis- where the data transfer between devices can be modeled
tributed processing introduced by Gheorghe Pǎun in using evolution rules.
1998. Information about this paradigm is available in
The use of membranes or similar principles in the
[1, 2, 3], or the bibliography at http://ppage.psystems.eu/
IoT world has been considered for years. Villari et al.
[2022-06-08]. Membrane systems are based on the hier-
in [4] introduce the concept of “osmotic computing” as
archical structure of membranes in cells and can be used
a paradigm, the main purpose of which is to increase
to model distributed computing. Mathematical models
the accessibility of resources and services in a computer
of membrane systems have been called P Systems.
network (e.g. IoT network), including cloud services. The
Objects located in membranes pass between mem-
authors present the concept of micro-services gradually
branes according to defined rules, similar to how var-
migrating from the cloud (physically in large data cen-
ious substances are transferred between membranes in
ters) to the edge of the network (edge computing), i.e.
a biological cell. The system usually works in parallel
they are performed on devices in the internal network.
(depending on the selected mode).
The paradigm is motivated by procedures from biology
The Internet of Things (IoT) is a term that is very or chemistry, where solvent molecules pass through a
difficult to define. IoT devices are mostly small, incon- semi-permeable membrane into other regions in the en-
spicuous devices with simple functionality and low con- vironment with higher solute concentration (osmosis).
sumption, whose strength lies primarily in their intercon- The issue is further developed by the paper [5], which
nection. We talk about smart devices, but the smartness considers the way in which micro-services, in particular,
is in their interconnection and usage of the data obtained can migrate between the cloud and edge resources and
from these devices. focuses more on the Internet of Things. The authors of
IoT devices can be simple sensors detecting e.g. the [6] deploy micro-services in a hospital application. Datta
temperature, motion, humidity, light, or alarms, mecha- and Bonnet in [7] show the use of MELs in securing
nisms for handling lighting, opening or closing windows, connected “smart” cars and other similar devices.
or passive recipients of data (e.g. displays). It can be We follow up on paper [8], in which the concept of
more complex devices with multiple functionalities, com- using the P system as an interface to IoT devices is pre-
munication points, gateways to other network types, or sented. Here we slightly modify the concept, add new
common devices such as smartphones. We encounter types of objects corresponding to various kinds of mes-
IoT devices at home, in companies, hospitals, industry, sages in the IoT system, and strictly separate the different
agriculture, on streets,. . . functionalities of the system. We also discuss the possi-
In principle, IoT devices are computationally indepen- bility of implementing a simple firewall at the membrane
system level.
ITAT’22: Information technologies – Applications and Theory, Septem-
ber 23–27, 2022, Zuberec, Slovakia
$ sarka.vavreckova@fpf.slu.cz (.̌ Vavrečková)
© 2022 Copyright for this paper by its authors. Use permitted under Creative Commons License
Attribution 4.0 International (CC BY 4.0).
CEUR
Workshop
Proceedings
http://ceur-ws.org
ISSN 1613-0073
CEUR Workshop Proceedings (CEUR-WS.org)
2. Preliminaries Definition 2 ([11]). The Internet of Things (IoT) is a net-
work of various types of smart objects (so called things) and
2.1. Membrane Systems devices. The things are connected to the Internet and com-
municate with each other with minimum human interface.
We assume the reader to be familiar with the basics of
They are embedded with abilities as sensing, analyzing,
formal language theory and membrane computing. For
processing and self-management based on interoperable
further details, we refer to [9] and [3].
communication protocols and specific criteria. These smart
As mentioned above, the basis of membrane systems is
things should have unique identities and personalities.
a membrane structure. A membrane can contain objects
and/or nested membranes. The main membrane contains There are several common communication models
all the other membranes, we call it the “skin membrane”. (or communication patterns) used in IoT networks, the
Objects can be handled using evolution rules. Figure 2 model Publisher-Subscriber is quite common because it
shows a membrane system with one skin membrane and is closer to the needs of IoT than other models. There
four nested membranes. Almost all membranes contain are three types of components: publishers produce data,
at least one object (objects can be usually simply denoted subscribers consume and process data, and the controller
by letters, but here we use more complex objects with (often called broker or server, depending on the specific
various parameters). protocol) as the central point of the network mediates
Definition 1 ([2], [10]). Let 𝐻 be a set of labels. data. Publishers send data to the controller, not to sub-
A P System of a degree 𝑚, 𝑚 ≥ 1, is a construct scribers, they don’t need to know about the existence
of subscribers. Each node with the role of a subscriber
Π = (𝑉, 𝜇, 𝑤1 , . . . , 𝑤𝑚 , 𝑅1 , . . . , 𝑅𝑚 ) subscribes to particular types of data (often called topics)
to the controller, and the controller sends the requested
where:
data to all the subscribers interested in them. Sensors are
(i) 𝑉 is a nonempty alphabet, its elements are called examples of publishers (producers); actuators (simple mo-
objects, tors) or displays are examples of subscribers (consumers).
(ii) 𝜇 is a membrane structure consisting of 𝑚 mem- In practice, various higher-level protocols are used
branes, the membranes are labeled by the elements in IoT networks, such as MQTT, XMPP, CoAP, AMQP,
of 𝐻, or simply HTTP as in classic computer networks. Fur-
(iii) 𝑤𝑖 , 1 ≤ 𝑖 ≤ 𝑚, are strings representing multi- thermore, we will mainly follow the MQTT protocol, in
sets over 𝑉 associated with the region of the 𝑖-th terms of terminology, message types and communication
membrane in 𝜇, scheme.
(iv) 𝑅𝑖 , 1 ≤ 𝑖 ≤ 𝑚, are finite sets of evolution rules More details about IoT network communication mod-
associated with the region of the 𝑖-th membrane in els, including protocols, can be found in [12]. Very clear
𝜇; an evolution rule is a pair (𝑢, 𝑣), also written and brief introduction to MQTT messages is in [13].
𝑢 → 𝑣, where
• 𝑢 is a string over 𝑉 ,
• 𝑣{︀ = 𝑣 ′ or 𝑣 = 𝑣 ′ 𝛿, where 𝑣 ′ is a string over
3. Model of System
⃒ }︀
𝑎ℎ𝑒𝑟𝑒 , 𝑎𝑜𝑢𝑡 , 𝑎𝑖𝑛𝑗 𝑎 ∈ 𝑉, 1 ≤ 𝑗 ≤ 𝑚 , The given definition of the P System does not meet our
⃒
and 𝛿 is a special symbol ∈ / 𝑉 representing requirements: we need a slightly more dynamic structure,
dissolution of membrane. where it is possible to create new objects due to external
The objects can be transported by the evolution rules influences (e.g. to generate an object containing temper-
through membranes due to the targets out (to the parental ature data), to pass objects to a real device, but also to
membrane) or in (to the child membrane specified by the generate or delete rules. There are two possibilities:
index), or they remain in the original membrane (here). 1. We can modify the definition.
2. We can add an additional layer above the mem-
Details and examples can be found in [2] and [10].
brane structure, this layer will carry out the stated
tasks.
2.2. Internet of Things
The second option is more feasible for our purposes, how-
We can find a lot of definitions of the Internet of Things, ever, with the possibility to change the set of rules in
but none of them is fully descriptive. Their formulation membranes from outside (there is no need to change the
depends on the usage of such specific IoT structure. In definition of membrane system). The set of rules will
[11] there are several definitions taken from multiple be changed continuously, but the impact will only be a
sources. We can compose the following definition from change in the operation of the system, not collisions or
them: system errors.
The added control layer will be able to affect objects '
Controller (Server) $
and rules at each step of the computation. Figure 1
demonstrates the whole structure. The control layer is '
Comp1 $
'
Comp3 $
above the membrane structure, this layer communicates
𝑠(3, south.temp)
using a suitable protocol with other components: a local 𝑝(1, south.temp, 1, 34)
network and, indirectly, the Internet, the cloud. 𝑠(3, north.temp)
& %
& %
'
Comp2 $
'
Comp4 $
Cloud
𝑝(2, north.temp, 1, 18)
6
? 𝑠(2, time)
Devices - Regular & %
& %
Network 𝑐(4, doorbell, secure12345)
𝑝(1, south.temp, 1, 33)
6 6 6 6 6 6messages & %
??????
Control Layer Figure 2: Example of IoT Membrane Structure
6 6 6 6 6 6objects
The components Comp1 and Comp2 are thermometers,
??????
Membrane Layer
the first one on the south side of a house and the second
one on the north side of a house (see the names of the
Figure 1: Communication Architecture topics to which they contribute). Both thermometers gen-
erate temperature data at regular intervals, which means
The membrane layer contains a P System with a mem- that the object 𝑝 appears regularly in the corresponding
brane structure, objects and rules as prescribed by the membranes. In the next step, this object is transferred to
definition. The only change from the definition is the the outer membrane using a rule.
addition of semantics. The objects contain semantic infor- The length of the interval is set on the given device, it
mation (e.g. the identifier of the sending membrane, the can be different on each device. In our case, the object
published data, the credentials when connecting). The for the first component is generated in each step of the
rules only take this information into account in their no- membrane system operation; the second component has
tation; the semantic information is not changed by rules, a bit longer interval.
only transited, or a new object with semantic information Comp2 is a more sophisticated device that can also
is created. display time, it sent an order to synchronize the time
The control layer keeps the state of the P System (ref- data (however, there is no component in the system yet
erences to membranes and rules) and other information that would serve as a publisher for the given topic).
– topics, subscriptions etc. And it makes interventions Comp3 is a display that has just been activated and it
to the membrane layer (adding new objects, picking up is sending an order for data of the first two components
some other objects etc.). (temperature topics).
Each device communicates with one assigned compo- The fourth component is being activated – an object
nent from the control layer, and each component is con- 𝑐 has appeared in the skin membrane environment for
nected to one assigned membrane from the membrane connecting this membrane to the system (activating the
layer. The devices do not communicate directly with corresponding device). According to the semantic data
each other, nor do the components, only the membranes of the object, it may be a doorbell.
forward objects to each other. In Figure 2 we can see several objects in various mem-
The separation of the data transfer itself into the mem- branes. Each of the objects also has properties. The
brane layer has another positive effect: it is not necessary objects passing through membranes represent messages
for all devices to use the same protocol and provide data sent between components. We use the following types
with the same meta-information, the control layer can of objects in our system:
perform reconciliation. • 𝑐(ID, credentials) is sent to negotiate a connec-
tion to the controller. The sending component
3.1. Membrane Layer (with the present ID) can act as a publisher and/or
subscriber after the connection is established.
Figure 2 shows the membrane structure of an example
• 𝑡(ID) is sent by the component when terminating
IoT system with one controller and several components.
the connection.
• 𝑠(ID, topic) is used to order messages belonging Any 𝑐(. . . ) -
to a specific topic. It is received by the controller component Controller
and the sending component is put to subscribers 𝑡(. . . )
for the topic.
𝑠(. . . )
• 𝑢(ID, topic) is sent by the given subscriber to Controller Subscriber
unsubscribe from the given topic. 𝑢(. . . )
• 𝑝(ID, topic, retain, data) represents the “Publish”
𝑝(. . . ) - 𝑑(. . . ) -
message sent by the given publisher in the first Publisher Controller Subscriber
stage of the path, that is, from the membrane of
the publishing component to the controller. The Figure 3: Objects for the operations connect/disconnect, sub-
third parameter “retain” takes the value 0 or 1. scribe/unsubscribe, publish
The value 1 means that the data for the given topic
should be stored, and forwarded to a component
that sends order just after the publication of this
For the skin membrane (controller) we need the fol-
data.
lowing set of rules: for each publisher 𝑖 publishing in
• 𝑑(publisherID, subscriberID, topic, retain, data)
a topic 𝑡 with the retain value 𝑟
represents the same message, but in the second ⋃︀
stage. The controller creates this type of object 𝑝(𝑖, 𝑡, 𝑟, data) → 𝑠 𝑑(𝑖, 𝑠, 𝑡, 𝑟, data)ℎ𝑒𝑟𝑒
for each subscriber for the topic and adds the ∀(𝑡, 𝑠) ∈ subscriptionsDB
second parameter. 𝑑(𝑖, 𝑠, 𝑡, 𝑟, data) → 𝑑(𝑖, 𝑠, 𝑡, 𝑟, data)𝑖𝑛𝑠
∀ subscribers 𝑠
The objects 𝑐 and 𝑡 are intended for activation and de-
activation of components. In the real world, this means For each component 𝑖, topic 𝑡 and retain value 𝑟:
establishing a session between a component and the con- 𝑝(𝑖, 𝑡, 𝑟, data) → 𝑝(𝑖, 𝑡, 𝑟, data)𝑜𝑢𝑡
troller (𝑐, connect) and terminating the session (𝑡). When These rules can also exist for the topics in which the
establishing a session, the component authenticates itself component does not publish because the object on the
(must pass credentials). left side of the rule appears in the membrane only when
The object 𝑠 is intended for ordering a subscription to the component starts publishing data to the topic.
a selected topic, and the object 𝑢 serves to unsubscribe.
Both objects need the sender’s ID, and 𝑠 contains the For each component 𝑖 and each topic 𝑡
topic name to subscribe. 𝑠(𝑖, 𝑡) → 𝑠(𝑖, 𝑡)𝑜𝑢𝑡
The objects 𝑝 and 𝑑 are used for the publish operation.
We create these rules again for all possible topics.
We need two types of objects for this operation because
Similarly, we need to transport other objects from the
we need to distinguish the two phases of the message
components 𝑖:
path (from the publisher to the controller and from the
controller to the subscriber). In the second phase, the sub- 𝑐(𝑖, credentials) → 𝑐(𝑖, credentials)𝑜𝑢𝑡
scriberID property is added to the object. The properties 𝑡(𝑖) → 𝑡(𝑖)𝑜𝑢𝑡
of 𝑝 and 𝑑 correspond to the publish message type: the 𝑢(𝑖, 𝑡) → 𝑢(𝑖, 𝑡)𝑜𝑢𝑡 for all possible topics 𝑡
sender’s ID (publisherID), the topic to contribute. One
of the properties is the “retain” value that determines 3.2. Control Layer
whether the published data should be stored for newly
connected subscribers, not just forwarded to current sub- The role of the control layer is to mediate communication
scribers. And of course the data. For 𝑑 we need one between the membrane system and devices.
additional property, the target (subscriberID). If a device sends the message to establish a connection
The use of the denoted objects is shown in Figure 3. with the controller, the control layer creates an object
Let us define the evolution rules for each membrane. with the device index and credentials in the correspond-
The rules are used to transport objects between mem- ing membrane. If a device produces data and sends the
branes. “produce” message, the control layer creates an object
Assume that the controller has a database (denoted with the appropriate parameters in the corresponding
as subscriptionsDB) of all subscribers for each topic. For membrane. The procedure is similar when any other
simplicity, we represent the mentioned database as a set message occurs.
of ordered pairs (topic, subscriber). Each topic can have If an object indicating a message for the corresponding
multiple subscribers and each subscriber can subscribe device appears in a membrane, the control layer reacts
to multiple topics. again: it removes the object from the membrane and
passes the relevant message to the given device.
Algorithm 1: Messages and corresponding objects Algorithm 2: Entities – properties
// Parental message/object with one common topic:
property, all messages have a sender: topic,
message: lastPublisher,
type, // publish, deliver,. . . lastValue; // last published data
ID; // ID of the source component order:
// Object generated by a publisher, going to the topic,
controller (the first phase of publishing message): subscriberID;
publish (child of: message): . . . . . . . . . . . . . . . . 𝑝 // Parental object for all entities:
topic, entity:
retain, // 0 or 1 ID, // identification number
data; membrane, // ref. to the corresp. membrane
// Object transformed by the controller, going to device; // ref. to the corresp. device
a subscriber (the second phase): component (child of: entity):
deliver (child of: publish): . . . . . . . . . . . . . . . . . 𝑑 turnedOn, // 0 (false) or 1 (true)
subscriberID; // Properties for publishing:
// Subscribing message with an order: publishTopic,
subscribe (child of: message): . . . . . . . . . . . . . . 𝑠 publishRetain, // 0 or 1
topic; // topic to subscribe // Property for subscribing:
topic[] orderedTopics;
// Unsubscribing message for some topic:
unsubscribe (child of: message): . . . . . . . . . . . 𝑢 controller (child of: entity):
topic; // topic to unsubscribe component[] components,
authenticator,
// Connection message for a component: topic[] topicsDB, // registered topics
connect (child of: message): . . . . . . . . . . . . . . . . 𝑐 order[] subscriptionsDB; // subscriptions
credentials; // e.g. username, password
// Disconnection message for a component:
disconnect (child of: message) . . . . . . . . . . . . . 𝑡 membranes) and the message form (for devices). For the
publish message, if the protocol used by the given device
does not provide working with topics, we can use the
The control layer does not deal with the forwarding of property publishTopic.
messages or the transfer of objects, the membrane system In contrast, the controller does not perform transfor-
is in charge of these operations. mations, but works with databases whose list can be seen
All the messages sent between components and their in Algorithm 2. If the controller device itself does not
corresponding objects are shown in Algorithm 1. Each provide authentication, the control layer can do it. For
message/object has its sender, so all messages (objects) new subscriptions, it is possible to use the retain property,
have the property ID (sender’s ID) inherited from the par- and we can also add additional functionality if required.
ent message/object “message”. Other properties depend The transformation between the objects 𝑝 and 𝑑 is
on the type of message/object. made inside the membrane layer using the appropriate
Algorithm 2 shows the properties of the controller and rule, not inside the control layer.
individual components. Each component can publish
into one topic (publishTopic) and subscribe data to mul-
tiple topics (orderedTopics). All components have their
3.3. Membrane Firewall
corresponding membranes inherited into the skin mem- A firewall is a traffic filter, i.e. it defines which communi-
brane. cation is allowed and which is not. In our system, we can
The controller registers topics that can be subscribed to implement the firewall at any layer, it depends on where
(topicsDB), and all current subscriptions (subscriptionsDB). we want it to interfere with traffic. Putting the firewall in
The corresponding membrane is the skin membrane. the membrane layer has the advantage that the firewall
In Algorithm 3 and 4 we can find the functions of is harder to detect for a potential attacker and we have
the components and the controller. The components as access to all traffic. However, we need the possibility to
the part of the control layer only perform the transfor- interfere with the evolution rules of membranes.
mation between representation in the object form (for
Algorithm 3: Components – functions Algorithm 4: Controller – function
// An object received from the membrane: // An object received from the membrane:
function component.receiveObject(obj) function controller.receiveObject(obj)
begin begin
if obj.type = = 𝑑 then switch obj.type do
device^.processMessage(deliver, case c do
obj.publisherID, obj.topic, obj.retain, obj.data) ; if (authenticator.check(obj.ID,
end obj.credentials)) and
(device^.processMessage(connect,
// A message received from the device: obj.ID, obj.credentials)) then
function component.receiveMessage(mes) components[obj.ID].turnOn();
begin
case d do
switch mes.type do device^.processMessage(disconnect,
case connect do
obj.ID);
membrane^.createObject(c, mes.ID,
components[obj.ID].turnOff();
mes.credentials);
case s do
case disconnect do device^.processMessage(obj.ID, obj.topic);
membrane^.createObject(t, mes.ID); subscriptionsDB.add(obj.topic, obj.ID);
case subscribe do if topicsDB.retainSet(obj.topic) then
membrane^.createObject(s, mes.ID, membrane^.createObject(d,
mes.topic); topicsDB.lastPublisher(obj.topic),
case unsubscribe do obj.ID, obj.topic, 1,
membrane^.createObject(u, mes.ID, topicDB.lastValue(obj.topic));
mes.topic); case u do
case publish do subscriptionsDB.remove(obj.topic, obj.ID);
membrane^.createObject(p, mes.ID, device^.processMessage(obj.ID, obj.topic);
mes.topic, mes.retain, mes.data); case p do
end if obj.retain then
end topicsDB.storeData(obj.topic, obj.data);
else topicsDB.unsetRetain(obj.topic) ;
end
In the previous sections, we assumed that all compo- end
nents can publish in any topic and can subscribe to any
topic. Thus, a natural implementation of a firewall can
simply be to restrict the set of evolution rules for certain receiving an object 𝑠 (subscription):
topics and certain components according to the specified
requirements. We can proceed in one of the following if firewall.allow(obj.ID, obj.topic) then
ways: membrane^.adjustRules_addSubscription(obj);
1. We intervene in the rule replacing object 𝑝 with
a set of objects 𝑑 inside the skin membrane. The The consequence is a modification of all the relevant rules
𝑑 object for a given subscriber and topic will or transforming the object 𝑝 with the given topic into sets
will not be generated. of objects 𝑑 (the object 𝑑 for the given subscriber and
2. We add or remove the rule transferring the object topic is added).
𝑑 into the membrane of the target component. In Furthermore, for disconnect messages, the given object
this case, it is advisable to create a deletion rule needs to be removed from the relevant rule. Therefore, if
for the given object. any rule transforming object 𝑝 to 𝑑 in the skin membrane
is applied, only such 𝑑 objects intended for any allowed
Whichever option we choose, the firewall does not de- communication are created.
lay traffic in any way. The published object is either
transferred, ignored or deleted, always within one rule.
Suppose we choose the first option. 4. Discussion
The firewall must also be managed by adjusting evo-
lution rules. We can provide this functionality in the In this paper, we comply with the message types and
control layer. The controller contains a database with set- overall functionality of the MQTT protocol, but only
tings for the firewall, according to which it reacts when in a simplified way. The mentioned protocol actually
uses other types of messages (including confirmations), sumer Electronics – Asia (ICCE-Asia), 2018, pp. 206–
which of course can also be implemented as objects in 212. doi:10.1109/ICCE-ASIA.2018.8552135.
membranes. Unfortunately, there is not enough space for [8] S. Vavreckova, Modeling communication in in-
the complete modeling of this communication. ternet of things network using membranes, in:
The proposed firewall could be enriched with a quar- CEUR Proceedings of the 21st Conference Infor-
antine membrane, and rules for the skin membrane that mation Technologies - Applications and Theory
forward “suspicious” traffic to the quarantine membrane. (ITAT 2021), 2021, pp. 195–201.
A supervisor could regularly check this membrane and [9] J. E. Hopcroft, J. D. Ullman, Introduction to
would gain an overview of risky traffic. Automata Theory, Languages and Computation,
The goal of this paper is to use a mechanism indepen- Addison-Wesley, 1979.
dent of, although inspired by, specific existing protocols [10] N. Busi, Causality in membrane systems, Mem-
to propose communication between IoT devices. A mem- brane Computing (2007) 160–171.
brane system was used as a basis, which can be further [11] W. Kassab, K. A. Darabkh, A–z survey of internet
elaborated: there are programming languages for imple- of things: Architectures, protocols, applications,
menting membrane systems, and other languages for recent advances, future directions and recommen-
network applications can be used as well. dations, Journal of Network and Computer Appli-
cations 163 (2020). URL: https://doi.org/10.1016/j.
jnca.2020.102663.
Acknowledgments [12] J. Dizdarević, F. Carpio, A. Jukan, X. Masip-Bruin,
A survey of communication protocols for internet
This work was supported by the project no.
of things and related challenges of fog and cloud
CZ.02.2.69/0.0/0.0/18_054/0014696, “Development
computing integration, Association for Computing
of R&D capacities of the Silesian University in Opava”,
Machinery 51 (2019). URL: https://doi.org/10.1145/
co-funded by the European Union.
3292674. doi:10.1145/3292674.
[13] P. R. Egli, MQTT – Message Queueing Teleme-
References try Transport, Zurich University of Applied
Sciences, Zurich, 2017. doi:10.13140/RG.2.2.
[1] G. Păun, Membrane Computing: An Introduction, 13210.54721.
Springer, Heidelberg, 2002.
[2] G. Păun, G. Rozenberg, A guide to membrane com-
puting, Theor. Comp. Science 287 (2002) 73–100.
[3] G. Păun, G. Rozenberg, A. Salomaa, The Oxford
Handbook of Membrane Computing, Oxford Uni-
versity Press, New York, 2010.
[4] M. Villari, M. Fazio, S. Dustdar, O. Rana, R. Ran-
jan, Osmotic computing: A new paradigm for
edge/cloud integration, IEEE Cloud Computing
3 (2016) 76–83.
[5] V. Sharma, K. Srinivasan, D. N. K. Jayakody, O. Rana,
R. Kumar, Managing service-heterogeneity using
osmotic computing, in: International Conference
on Communication, Management and Information
Technology (ICCMIT 2017), Warsaw, Poland, 2017.
[6] A. Buzachis, D. Boruta, M. Villari, J. Spillner, Mod-
eling and emulation of an osmotic computing
ecosystem using osmotictoolkit, in: 2021 Aus-
tralasian Computer Science Week Multiconference,
ACSW ’21, Association for Computing Machinery,
New York, NY, USA, 2021. URL: https://doi.org/
10.1145/3437378.3444366. doi:10.1145/3437378.
3444366.
[7] S. K. Datta, C. Bonnet, Next-generation, data centric
and end-to-end iot architecture based on microser-
vices, in: IEEE International Conference on Con-