Iot Solution Methodology Draft
Iot Solution Methodology Draft
Frank Puhlmann
1 Motivation
The Internet of Things, abbr. IoT, has gained a lot of coverage in the last years [3,
4, 13]. It is now a common understanding that the implications of this develop-
ment will have a strong impact on businesses and individuals [15, 5, 12]. Products
will be enhanced with connected services and new business models implemented
on top. Market research companies estimate the number of connected devices into
two-digit billions by 2020 [9] and the possible revenue streams accordingly [6].
In practice, however, IoT projects are not so well understood as the hype
suggests. IoT projects tend to be split across multiple domains [18], making them
hard to execute successfully. First of all, IoT projects have a hardware part, which
is usually a complete project on its own, either retrofitting existing or developing
custom things. Since the hardware needs to be able to communicate and interact,
usually a complex firmware is deployed to it, which needs to be developed and
maintained with a different lifecycle. If the connectivity goes beyond Bluetooth
or Wifi, mobile operators with SIM cards and yet other lifecycles come into
play. Finally, connected things usually require mobile apps or backend services
to operate, which need to be developed and operated in the sense of a traditional
IT project.
Bringing these four different lifecycles—and often also projects—together
requires a structured approach. Issues like waterfall-driven hardware develop-
ments, fixed SIM lifecycles, complex certification of firmwares, and of course the
agile, often Dev-Ops driven backend IT project need to be aligned in the right
way. We covered this topic in depth in our book Enterprise IoT [18]1 .
1
Available online at http://enterprise-iot.org/book/enterprise-iot/
2
Solution Name
<<RootInstance>>
uses
Id Start Time
Owner Owner
Feature [] …
… Calc
Yes No
§
<<Enumeration>>
CREATED NEW
INSTALLED APPROVED
OPERATING CLOSED Process [CLOSED]
… … BO
Role
Task 1
Process Name
Start End 1
XDK Role
[NEW] §
Task 2
[APPROVED]
Key rule descriptions
End 2
Thing functionality
Thing
description
2 Preliminaries
The IoT Solution Methodology re-uses a number of existing standards and best
practices due to their widespread tool availability and practical experiences.
While most of the standards will be simplified for the sake of usability in practice
workshops, the simplification is done by restricting the used elements, so that
they are still fully compliant.
3
Before we move to the standards, however, there is one more term: In the
introduction we talked about things, but we need to detail them for the next
sections. We use the word thing to depict the concept of anything that can be
connected, either physical or virtual. The refinement is given by the term asset:
Preliminary 1 (Assets and Devices). An asset (as defined in Enterprise
IoT in [18]) is a thing of value for a company, i.e. something a company keeps
in its books, like the cars a rental company owns. An assets can have multiple
devices attached that collect data, act on something, or process and transmit
the data.
Preliminary 2 (UML Class Diagrams). A core concept of the IoT method-
ology is given by a subset of UML Class Diagrams, see e.g. [16]. We denote this
subset as Domain Models. A Domain Model always has a single root class with a
specific stereotype RootInstance. This class is used as a start for navigating the
model in queries and expressions. Other stereotypes are used as introduced in
section 4. For simplicity, we do not display the methods as well as attribute types
in the class body, focussing purely on the attributes. We restrict the associations
to inheritance, aggregation, and directed references.
Preliminary 3 (Petri Nets). The lifecycles of Domain Model classes are
described via Petri nets, as defined in e.g. [7]. The primary use is restricted to
the standard visualisation with places and transitions to allow for token games
with the stakeholders. Besides this, all formal rules and formalisations still apply
and might be used for further analysis or implementation later on.
Preliminary 4 (Business Process Diagrams). The process modelling part
of the methodology is based on the BPMN 2.0 specification as defined in [1]. We
restrict the usage to the most common elements as described in [21] but allow for
any addition if understood by the stakeholders. The common elements include
plain Start and End Events, Human and Service Tasks, as well as Exclusive and
Parallel Gateways. We use the Data Object to link with a specified class of the
Domain Model.
Solution Draft
<<RootInstance>>
Rule User Interface Role Process Domain Model Analytics Model Thing Connectivity
Tree Rule Action View Process Node Process Edge Class Lifecycle Association Direct
META MODEL
Tabular Rule
Process Gateway Lifecycle Edge IoT Gateway
ProcessBO ThingBO
Event
Lifecycle Node
Task
State Transition
Element 1 (Rule). Rules usually describe stateless logic required for an IoT
solution. We distinguish two variants, either tree- or tabular-based. Rules need
to reference Classes of the Domain Model to describe their input and output
values.
Element 2 (User Interface). User Interfaces group Actions and Views. An
Action is a trigger like a button or slider. A View contains a layout for attributes
of the Classes referenced by the User Interface. A typical view might have a list,
tabular, or textual layout. User Interfaces can also reference Rules and Roles.
The former describes additional logic, like the flow of a wizard via a Tree Rule.
The latter describes access rights, like which Role is allowed to view or edit
elements shown in the User Interface.
Element 3 (Role). A Role represents a stakeholder of the IoT solution with
its corresponding access rights. Roles are mapped to Users, which we omit for
simplicity.
Element 4 (Process). Processes are in the centre of an IoT solution. They
are made up of Process Nodes and Process Edges. Again, for the sake of simplic-
ity, we refer to standards like the BPMN for a complete subset. We depict Process
Gateways, Events, and Tasks in the meta-model. Tasks can reference User In-
terfaces for their visualisation (BPMN User Task) as well as Rules (BPMN Rule
Task) to represent the execution of stateless logic inside a process flow.
Element 5 (Domain Model). The Domain Model describes the logical
business view of the IoT solution data. A Domain Model aggregates Classes
and Associations. Classes can be refined into specializations used as transitional
data inside Processes or data representing a Thing. Classes can also aggregate
Lifecycles, which describe the state transitions a class can have. In terms of
UML, a Lifecycle is usually depicted as an enumeration of the different states.
5
The behavioural model behind the lifecycle is given by a set of Lifecycle Edges
and Lifecycle Nodes, which resemble a Petri net with States and Transitions.
Element 6 (Analytics Model). An Analytics Model references elements
of the Domain Model to describe goals and computations for machine or deep
learning algorithms used in areas like predictions or self learning of IoT solutions.
Element 7 (Thing). A Thing represents the physical centrepiece of an IoT
solution. It can reference Roles, which describe the rights to own or use (aspects)
of the Thing. A Thing used in an IoT solution also needs to have a reference to
at least one Connectivity model.
Element 8 (Connectivity). Connectivity describes how Things interact
with the backend systems. Typical communications are either Direct or IoT
Gateway based. The former describes direct connectivity with the backend, like
a GSM-enabled car emergency sensor. The latter uses a local device which groups
several Things and provides local logic via onboard Rules, such as given by a
Smart Home gateway.
Count Planned
Count Initially
Description
Name
Approve
ROLES
Rental
Manager
Capture
Rental Manager Is responsible for the operations 1 50
of the rental company office.
Hand-out /
Clerk Return car
Clerk Is responsible for customer care 3 200
Create and rental support.
invoice
Accountant Is responsible for creating the 1 10
Accountant invoices.
backend systems will take care of the booking and invoicing processes. We omit
a user self-service app for simplicity.
The initial creation of the Solution Draft took place on a Whiteboard and
was captured in figure 3. The following subsections will revisit and break-down
the different elements contained in the Solution Draft.
Monster Rentals
<<RootInstance>>
DOMAIN MODEL
uses
Timestamp Id Start Time Customer Number
has
Source Owner Owner Last Contact
Message Feature [] Price Type
… … ….
– Event: An event that might occur during the execution of a process or di-
rectly come from a thing. An event instance is usually used as some kind of
log.
– Enumeration: An enumeration is primary used to capture the different states
of a thing or process business object but can also be used for simple enu-
merations like the available colours or car types.
There is a special case, where you don’t need to filter your entities: A Pro-
cessBO class used in a Business Process or Rule always refers to the instance
LIFE CYCLES
8
Operating
? ? ?
Car-Status ? ?
<<Enumeration>>
PURCHASED
Purchased
?
OPERATING
CRASHED ? Under Sold
UNDER REPAIR
SOLD
Repair
?
Crashed
?
it is bound to. We will discuss this later when we talk about business processes
and rules.
Figure 6 shows the Lifecycle (e.g. behavioural) view of the solution based on
classes of the Domain Model. Especially, each ThingBO and ProcessBO need to
have an aggregated Enumeration representing the different states the business
object can have. The figure shows the status of the Car, which starts with
Purchased from the rental’s company point of view. It has some intermediate
states before reaching the final state Sold. As stated in preliminary 3, a Lifecycle
is a Petri net with a special visualisation of the final place. Each state given by
the attributes of the Enumeration are mapped to a place of the Petri net. The
transitions need to be added accordingly as discussed with the Stakeholders.
A technical implementation will be derived later on, as discussed in the next
subsection.
[NEW]
[RENTED]
Approval
Clerk Rental required?
Capture Start End
Rental Rental Rental
Details
New
Days > 3
Rental
[APPROVED]
Approve
Rental Process
Approve Reject
Manager
Rental [RETURNED]
Rental
Rejected
[REJECTED]
[BILLED]
Accountant
Calculate § Create
Rental Invoice
Rental
Ended
Figure 7 shows a Business Process of the Car Rental company. The process
captures the basic Rental Process as executed by a Clerk of the company. To
visualise the ProcessBO used, it is associated graphically with the Start Event. If
the completion of an Activity changes the Lifecycle state of the Business Object,
the outgoing Sequence Flow of the activity associates the ProcessBO with the
corresponding State shown in brackets.
The verify the modelled Business Process, we step through the Process and
check that only Lifecycle Transitions are possible that are captured in the Life-
cycle Model. If the Business Process contains more behaviour, we need to discuss
with our Stakeholders if the Lifecycle Model or the Business Process Diagram
need to be adjusted. If the Lifecycle Model allows more behaviour than is cap-
tured in a single Business Process, this points to a case-driven implementation.
The additional transitions might be captured in other Business Processes or
handled via process-external logic and user interface implementations.
Calculate Discount
Rental->Customer.Type Rental.Price
CustomerType.GOLD :=Rental.Price*0.75
CustomerType.SILVER :=Rental.Price*0.90
Rental
CustomerType.STANDARD :=Rental.Price*0.95
Rental->Car- ==0
>Log.Count(Log.Events) §
Calculate
else Discount
Rental
§
Calculate
Charges
Approve No Car
Process
Rental <<ThingBO>>
Id
Yes
Owner
Feature []
,,,
12 1 OPERATING
CRASHED
OK ISSUE
UNDER REPAIR
SOLD
MAP
Yes No
This subsection focuses on a short recap of the core techniques to map User
Interfaces with the models and artefacts shown before. A refined discussion on
how to map Process and Rules with User Interfaces can be found for instance
in [11]. Still, it has proven valuable to stick to three core principles:
11
Enterprise
Rental Application
Enterprise
Applications
LAN
BPM BRM M2M
IoT Cloud /
Backend
M2M
Wifi
Raspb.
Gateway Drivers and functional
(OBU) items in Prosyst
BT
Asset - Car
XDK
Wire
Acceleration Sensors,
Devices Gyroscope
Figure 9 shows how User Interfaces are linked with Processes and entities
from the Domain Model. For instance, each Human Task, where a decision is
made, must be reflected by corresponding Actions, e.g. buttons, in the UI. The
UI buttons must be labeled the same as the outgoing Sequence Flows of the
Process Gateway following a Human Task. User Interfaces representing entities
from the Domain Model are required to clearly distinct between collections (like
a list of cars) and single entities (like the details of a car). Typically, the bottom
of the UI should show more details and group it by functionality or features.
Car Customer
UI
OBU
Car
Different approaches can be used for the Analytics requirements, incl. Complex
Event Processing or Machine Learning Technologies. The Business Data is usu-
ally stored in SQL databases. The Communication layer is implemented by a an
M2M stack. Furthermore, since the Project Sketch is meant as an overview of a
concrete next project, only the topmost Processes, Rules etc. are listed.
Just like the Solution Draft, the Project Sketch starts with the most impor-
tant Roles and their mapping the corresponding User Interfaces of the Appli-
cation. In addition to the Solution Draft, each artefact contains the scales by
numbers, e.g. Users of a specific Role this year and next year. The same holds
for all other aspects, like the number of Process and Rule instances, or the size
of the Business Data. These numbers give an indication on the scale of the final
solution.
While the derivation of the top and middle layer from the Solution Draft
is straightforward, the Connectivity layer needs some additional explanations.
First, the Information Model captures the high level events and data streams
coming from the things; usually implemented in the On Asset Business Logic
or the Gateway/Agent of the Asset Integration Architecture. Second, the Func-
tions cover functionality that needs to be implemented on the things. Third,
the Device Data is usually stored in No-SQL databases to store time series and
log date coming from the things. All described refinements capture the expected
input/output or data size, scaling via the asset numbers shown in the sample
Thing below.
6.1 Evaluation
Based on our experience, we derived the following best practices from projects
with customers from multiple domains, including manufacturing, retail, insur-
ance, and mobility.
Best Practice 1 (Use the Solution Draft as a Canvas). The Solution
Draft showed value in structuring the available whiteboard space into differ-
ent regions. Regardless with which aspect the customer starts, the draft helps
drawing it in the right place with space left for the other aspects.
14
practices for privacy design into the IoT domain. A framework for provisioning
large scale, scalable IoT deployments, such as in Smart Cities, is introduced by
Voegler et.al. in [20]. This work, however, focuses on a concrete architecture,
whereas our methodology is architecture agnostic.
7 Conclusions
This paper introduced a novel IoT methodology based on a meta-model that
brings together the different aspects typically found in IoT projects. The IoT
methodology is based on a visual template for the high level structure, denoted
as Solution Draft, as well as for detailed discussions. The templates follow ex-
isting notations wherever possible. The outcome of the analysis is captured in a
concrete decision proposal (Project Sketch) for a project.
From our evaluations and practical experience, this methodology unfolds its
value especially in a Plan-Build-Run environment. After having done the Planing
via the different refinements discussed in section 4, multiple Build options can
be derived. A common implementation might be cloud-based with a Node.js
template, while some on-premise implementations might generate traditional
Java2EE code. In general, the IoT methodology is architecture agnostic.
Future work focuses on enhancing the methodology regarding and on build-
ing different implementation-support tools. These tools will be based on the
meta-model introduced in section 3. Focusing especially on the Processes and
the Domain Model, rapid-prototypes can be build. Using agile implementation
practices, these prototypes will enable early user feedback and support UX pro-
cesses.
References
1. Business Process Model and Notation (BPMN) version 2.0. OMG Specification,
Object Management Group (2011)
2. Decision Model and Notation (DMN) version 1.2. OMG Specification, Object
Management Group (2016)
3. Atzori, L., Iera, A., Morabito, G.: The Internet of Things: A Survey. Computer
networks 54(15), 2787–2805 (2010)
4. Da Xu, L., He, W., Li, S.: Internet of Things in Industries: A Survey. IEEE
Transactions on industrial informatics 10(4), 2233–2243 (2014)
5. Fleisch, E., Weinberger, M., Wortmann, F.: Business Models and The Internet of
Things. In: Interoperability and Open-Source Solutions for the Internet of Things,
pp. 6–10. Springer (2015)
6. Ip, C.: The IoT opportunity: Are you ready to capture a once-in-a lifetime value
pool? Hong Kong IoT Conference (2016)
7. Jensen, K.: Coloured Petri Nets. Springer Verlag, Berlin, 2nd edn. (1997)
8. Keller, G., Nüttgens, M., Scheer, A.: Semantische Prozessmodellierung auf der
Grundlage “Ereignisgesteuerter Prozessketten (EPK)”. Tech. Rep. 89, Institut
für Wirtschaftsinformatik, Saarbrücken (1992)
9. Lucero, S.: IoT platforms: enabling the Internet of Things. IHS Technology
Whitepaper (2016)
16
10. Meyer, A., Herzberg, N., Puhlmann, F., Weske, M.: Implementation framework
for production case management: Modeling and execution. In: 18th IEEE Interna-
tional Enterprise Distributed Object Computing Conference, EDOC 2014, Ulm,
Germany, September 1-5, 2014. pp. 190–199 (2014)
11. Nelius, R., Slama, D.: Enterprise BPM: Erfolgsrezepte für unternehmensweites
Prozessmanagement. dpunkt. verlag (2011)
12. Pelino, M., Gillet, F.: The Internet of Things Heat Map, 2016. Forrester Research
(2016)
13. Perera, C., Liu, C.H., Jayawardena, S., Chen, M.: A survey on internet of things
from industrial market perspective. IEEE Access 2, 1660–1679 (2014)
14. Perera, C., McCormick, C., Bandara, A.K., Price, B.A., Nuseibeh, B.: Privacy-
by-design framework for assessing internet of things applications and platforms.
In: Proceedings of the 6th International Conference on the Internet of Things.
pp. 83–92. ACM (2016)
15. Rifkin, J.: The zero marginal cost society: The Internet of Things, the collabora-
tive commons, and the eclipse of capitalism. Palgrave Macmillan (2014)
16. Rumbaugh, J., Jacobson, I., Booch, G.: The Unified Modeling Language Reference
Manual. Addison-Wesley, Boston, 2nd edn. (2005)
17. Sharma, V., Das, S., Kewaley, S.: Design thing’ing: methodology for understand-
ing and discovering use cases in iot scenarios. In: Proceedings of the 7th Interna-
tional Conference on HCI, IndiaHCI 2015. pp. 113–115. ACM (2015)
18. Slama, D., Puhlmann, F., Morrish, J., Bhatnagar, R.M.: Enterprise IoT: Strate-
gies and Best Practices for Connected Products and Services. O’Reilly Media,
Inc. (2015)
19. Van Der Aalst, W.M., Ter Hofstede, A.H., Weske, M.: Business process manage-
ment: A survey. In: International conference on business process management. pp.
1–12. Springer (2003)
20. Vögler, M., Schleicher, J.M., Inzinger, C., Dustdar, S.: A scalable framework for
provisioning large-scale iot deployments. ACM Transactions on Internet Technol-
ogy (TOIT) 16(2), 11 (2016)
21. Wohed, P., Aalst, W., Dumas, M., Hofstede, A., Russell, N.: On the Suitability
of BPMN for Business Process Modelling. In: Dustdar, S., Fiadeiro, J., Sheth,
A. (eds.) Business Process Management, volume 4102 of LNCS. pp. 161–176.
Springer Verlag, Berlin (2006)