A tiny MQTT-Broker docker image

Intro

Some time ago I started to get a look at MQTT and needed a broker to start with. Eclipse Mosquitto (http://mosquitto.org/) was a logical choice for a quick start and as I am a fan of docker containers for not polluting your local system installation whilst trying new software stacks, I searched for a docker image with Mosquitto.

Of course, there were many, but I was a bit astonished about their size. 500MB and more? That’s not what I expected from an efficient docker build result. I started to check what the exact technical requirements of Mosquitto were and actually, it doesn’t need so much to run.

Approach

The most simple way would be a small Linux coming at least with a package manager to get it up and running, as it is pointed out here: https://mosquitto.org/download/The OpenWRT approach seemed to be the most interesting, as it is available for various CPU types and its known to be damn small.

Solution

A short time later the Dockerfile was written and an image which was packed below 4MB. I’d call that a success J You can find the results right here https://hub.docker.com/r/mrinus/docker-openwrt-mosquitto/ or by doing a docker pull on mrinus/docker-openwrt-mosquitto and run the image by:

docker run -p 1883:1883 -d mrinus/docker-openwrt-mosquito


Dockerfile

BTW

Just to mention it: Nowadays there is an official image locatable as eclipse/mosquito which has an even smaller footprint. As they did not provide a build tagged latest you can run it by giving the latest build tag:

docker run eclipse/mosquitto:1.4.8 –p 1883:1883
 
Have fun exploring MQTT!
Veröffentlicht unter Integration, IoT, Quicktipp | Kommentar hinterlassen

Published CattleCrew Case Management UI

As a result of our case management experience, we recently released a self-developed case management UI on GitHub to get a better introduction to case management and CMMN 1.1.

Intro

In addition to the traditional process and rules management, Case Management has established itself as the third standard in the BPM standard Toolkit. Case management is particularly suitable for dynamic business processes, which have a high variance in execution. What BPMN represents for traditional process models is the CMMN standard for case management.

The CattleCrew Case Management UI has emerged from the idea of providing an easy introduction to the topic with tool support. We decided for a UI because during our first attempts we noticed that an optimized user interface is a central element for case management. In order to promote the topic with the help of the community, we have published it on GitHub.

Try it out

After following the instructions on GitHub and invoking the user interface, the overview page opens. By selecting a case you get to the detailed view.

cccmui-dashboard

Dashboard

In the detail view, all the context informations about the current case are displayed in four columns to support the knowledge worker with required information. This includes case’s history, information from comparable or related cases, and existing documents.

In the first column of the left the navigation search functionality for  similar or related cases is placed. Below all the associated documents are displayed. In the second column from the left, relevant context information are listed. In the third column you can see the status of the case and what happened so far. The right column shows the activities that can be executed or are currently being processed.

cccmui-casedetails

Case Details

Behind the second tab, the rendered case model is displayed.

cccmui-casemodel

Case Model

Behind the third tab, DMN tables with the input and output parameters are displayed . In the current version, these are displayed only if a BPMN process was started from the case that references a DMN table.

cccmui-casedetailsdecisionhistory

Decision History

The fourth tab shows the data you’ve determined and is especially useful for the developer.

cccmui-casedetailsrawdata

Raw Case Data

By selecting the „New Case“ button in the main navigation, a new case can be started.

cccmui-newcase

New Case

All existing cases in the process engine are listed. After the selection of a case a business key and process variables can be added.

cccmui-newcasewithvariable

New Case with Process Variables

As soon as a case has been started, you will be directed to the overview page, where the newly started case is also visible.

Used process engine

The project requires the Camunda BPM Process Engine. Camunda BPM is one of the first software vendorsthat has integrated CMMN 1.1 into their process engine and also provides a corresponding modeller. Since Camunda 7.6, the „CMMN Monitoring“ feature is also included in the Enterprise version.

CattleCrew Case Management UI is flexible designed so that the engine specific implementation can be replaced by another to test the UI with other process engines. In the following figure, the layers are shown in an abstract manner.

cccmui-architectureoverview

Technical Birdview

The project can be found on GitHub at https://github.com/opitzconsulting/cattlecrew-case-management-ui. There is also an installation manual. The QR code is

QR-Code

QR-Code

 

 

 

 

Of course, you are invited to participate to this project, too. If you are interested, please contact us.

Have fun on experimenting with case management and CMMN!

Feedback is always welcome 😉

Veröffentlicht unter ACM, BPM, camunda BPM, Integration, Modern Clients, Web Development | Kommentar hinterlassen

Data Lineage mit dem Oracle© Data Integrator 12c

In diesem Beitrag geht es darum, wie man Data Lineage mit dem ODI 12c umsetzen kann. Der Beitrag richtet sich u. a. an diejenigen, die den Ursprung ihrer Daten im DWH nicht mehr nachvollziehen können und vielleicht auch das Vertrauen in die Kennzahlen verloren haben.

Data Lineage beschreibt das Zurückverfolgen der Daten vom Ziel bis zur Quelle. Da ein DWH in den meisten Fällen aus mehreren komplexen ETL-Prozessen besteht, ist oft schwer nachzuvollziehen, aus welchen Quelldaten, Daten aus dem Frontend abgeleitet wurden. Bei der Umsetzung von Data Lineage profitiert man u. a. von einem erhöhten Vertrauen der Endanwender in die Daten im DWH. Weitere Vorteile, die sich aus einer Umsetzung ergeben, finden sich z. B. hier: Lineage tracing for general data warehouse transformations.

Für ein Kunden-DWH, das aus diversen komplexen ETL-Strecken besteht, wurde ein Prototyp zur Visualisierung, der Herkunft der Daten erstellt. Da die ETL-Strecken mithilfe des Oracle Data Integrator 12c entwickelt worden sind, wurde auch zum Abgreifen der Metadaten und zur Entwicklung des Prototyps die von Oracle zur Verfügung gestellte Java SDK genutzt.

Mithilfe der SDK wird eine Schnittstelle zum ODI entwickelt, welche die Metadaten ausliest und diese so aufbereitet, dass diese sinnvoll in einer Graphendatenbank, in diesem Fall Neo4J, gespeichert werden können. Dabei ist die Schnittstelle so implementiert, dass diese universell für jedes Projekt, das mit dem ODI entwickelt wird, verwendet werden kann. Die Daten werden einmal aus dem ODI geladen und bereitgestellt. Nach Änderungen sollen die Daten aus dem ODI neu geladen werden.

Die Daten in der Graphendatenbank werden mithilfe von D3js im Browser visualisiert. Dabei wird dem Nutzer eine Suchoption geboten, um sich nur die gewünschten Objekte darstellen zu lassen. Komponenten, die sich im selben Mapping befinden, werden „gehighlightet“, somit wird der Fluss der Daten transparent. (Für eine Defintion der ODI typischen Begriffe sei hier auf den Developers Guide für den Oracle© Data Integrator verwiesen.) Außerdem werden detaillierte Informationen zu den Komponenten visualisiert, wobei zwischen verschiedenen Typen unterschieden wird. So wird z. B. zwischen Join- und Expression-Komponenten differenziert. Ferner wird bei Join-Komponenten der Jointyp dargestellt. Die Transformationen  lassen sich daher besser nachvollziehen.

Diese Lösung bietet im Gegensatz zum OEMM 12c eine leichte Anpassbarkeit und Erweiterbarkeit sowie eine moderne Visualisierung.

Veröffentlicht unter BI | Verschlagwortet mit , , , , | Kommentar hinterlassen

Geschichten aus dem OC|Lab: Retrofitting am Beispiel

In loser Folge werden wir hier aus Projekten berichten, die mit Hilfe des OC|Lab umgesetzt wurden.

Über Digitalisierung wird derzeit viel gesprochen und geschrieben. Viele scheuen sich aber vor dem Invest, den ein solcher Einstiegt eventuell bedeutet. Vor allem dann, wenn man große Maschinen hat, deren Abschreibungszyklus länger ist. Mit Retrofitting ergibt sich hier aber eine Möglichkeit, bestehende Hardware „smart“ zu machen. Das galt es einmal im realen Leben auszuprobieren.

Wir sind also mit der Idee des Retrofittings zu Q-loud (vergleiche älterer Post zu Q-loud) gegangen und haben hier über konkrete Ideen gesprochen. Zur Demonstration der Funktionalitäten der eignen Lösung hat Q-loud eine Maschine, die Würfel aus verschiedenen Unter- und Oberteilen zusammenbaut. Die Steuerung erfolgte über eine Siemens SPS. Die Arbeitsteilung war schnell klar, Q-loud sorgte für eine sichere Bereitstellung der Daten in der Cloud und wir waren für die Auswertung und optische Aufbereitung verantwortlich. So wurden die Daten von der Maschine durch einen zusätzlichen Sensor abgerufen und sofort an die IoT-Cloud von Q-loud gesendet. Auf Basis der dort vorliegenden historischen und aktuellen Daten hat sich das Team aus dem Lab überlegt, zwei Dashboards zu bauen: eines für das Management und eines für die Produktion.

dashboards-entwurf

Aus dem Entwurf wurden dann Dashboards, die die Daten in quasi Realtime (der Delay ergibt sich aus der Dauer der Übertragung der Daten, und auf Messen ist das WLan meist stark beansprucht) angezeigt und analysiert haben.

dashboards-prototyp

Auf der OOP 2017 konnten wir dann das Ergebnis präsentieren und sind auf großes Interesse gestoßen. In kurzer Zeit und mit relativ geringem Aufwand wurde eine Maschine, wie sie in vielen Fertigungen steht, „smart“ gemacht und die dort anfallenden Daten mit anderen Daten kombiniert und über weitere Lösungen Mehrwerte geschaffen, die an der Maschine direkt nicht möglich gewesen wären. Danke an das Team, der Retrofitting Test war damit bestanden.

Veröffentlicht unter cloud, Cloud Computing, Conference, German, IoT, Uncategorized | Verschlagwortet mit | Kommentar hinterlassen

Approve messages in Camunda BPM with DMN and forward via Camunda HTTP Connector

While I was watching today a video of Jakob Freund talking about “Camunda in the cloud”, I understood better the simple process modelled by my colleagues and me a couple of days ago. In this speech at the BPMCon 2016 he was talking about clients, who used Camunda, not being interested in the zero code case as much as the other advantages of BPM. Most of them see the ability to dis Weiterlesen

Veröffentlicht unter camunda BPM, English, Integration, Java | Kommentar hinterlassen

Ein Informationsbündel für die Digitalisierung

Vertriebsgespräche haben den interessanten Nebeneffekt, dass man die eigenen Inhalte reflektiert. Im Anschluss meines letzten Gespräches haben wir eine Auswahl an Materialien zusammengestellt, um eine Übersicht über unsere Expertise darzustellen.  Dabei ist die folgende Auswahl entstanden – und das ist noch nicht alles!

Zu unserem Verständnis der Digitalisierung

Eine Auswahl zu IoT und Cloud

Rund um Architektur und DevOps:

Methodisches

Unser OC|Lab

Überraschend mehr Möglichkeiten:-)

Veröffentlicht unter Architecture, Cloud Computing, German, IoT | Kommentar hinterlassen

Prototyping – Mit geringen Mitteln zu viel Erfolg

„If a picture is worth 1000 words, a prototype is worth 1000 meetings.“ (IDEO.com)

Die Entwicklung der User Experience einer App ohne Erstellung von Prototypen ist unvorstellbar. Zu wichtig und erfolgsentscheidend sind die Aufgaben, die Prototyping übernehmen kann:

  • Kommunikation von Ideen zwischen den Stakeholdern (Business, Technologie, Design)
  • Testen, Erproben und bewerten von Lösungsansätzen
  • Lernen, lernen, lernen darüber ob das Problem richtig verstanden wurde oder ob der Lösungsansatz valide ist.

Doch noch nicht genug der Vorteile: Prototyping ist super billig. Keine Sorge: Prototyping kann auch teurer werden. Z.B. wenn die günstigere Variante für das angestrebte Lernziel nicht mehr ausreicht. Beispiele, wann welche Form von Prototype besonders geeignet ist:

  • Möchte ich etwa erfahren ob der Task-Flow meiner App verstanden wird und nachvollziehbar ist, reicht ein Lo-Fi
  • Möchte ich bereits erste Interaktionen auf einem Device probieren, reicht Papier nicht mehr aus (Mid-Fi)
  • Möchte ich realistische Daten in der App testen, sollte schon mal Code geschrieben werden (Hi-Fi)

Hilfreich ist die Orientierung an diesen Kategorien von Prototypen:

  1. Lo-Fi Prototype
  2. Mid-Fi Prototype
  3. Hi-Fi Prototype

Lo-Fi Prototype

z.B. einfache Sketches auf Papier – schnell erstellt, schnell geändert, schnell verworfen

image001.png

Einfache Sketches als Prototype

Mid-Fi Prototype

z.B. Wireframes oder interaktive Protoypen mit speziellen Tools wie Balsamiq oder InVision

image003.png

Visueller, interaktiver Prototype ohne Daten mit dem Tool InVision

Quelle Bild: https://www.invisionapp.com/assets/img/home/animations/new/mockup-4.png

Hi-Fi Prototype

Mit grafischem Design und repräsentativen Daten, aber ohne vollem Funktionsumfang und Backend-Anbindung. Hier kann schon mal drauf los „ge-coded“ werden.

image005.png

Code eines Angular2 Prototypen

Zusammenhang zwischen Kosten und Zeit bei der Erstellung von Prototypen

Den Zusammenhang zwischen Fidelity-Typ (Lo-Fi, Mid-Fi, Hi-Fi), Kosten und zeitlichem Aufwand zeigt diese einfache Abbildung. Je höher der Fidelity Grad, desto höher die Kosten und der zeitliche Aufwand

image007.png

Progression von Prototypen

Abbildung adaptiert von Mark.W Newman, University of Michigan

Fazit

Die Einteilung in Lo, Mid, Hi dient zur Orientierung und um den Fokus im breiten Feld rund um Prototyping zu bewahren. Einfach ausprobieren, lautet die Devise!  Nur so kann ein Gefühl und Erfahrung entwickelt werden, mit welchen Methoden die definierten Ziele erreicht werden können. Die Erfahrung lehrte uns, dass Prototyping extrem wirkungsvoll ist und Ziele effizienter erreicht werden können und Risiken von kostspieligen Misserfolgen minimiert werden können.

Wie wird in Ihrem Unternehmen Prototyping eingesetzt? Welche Erfahrungen haben Sie damit gemacht?

Weitere interessante Artikel zum Thema Usability und User Experience Design

Links und Referenzen

Über den Autor

Andreas Lehner ist Experte für User Experience und Digital Design Thinking bei Opitz Consulting. Er entwickelt gemeinsam mit Experten aus Technik und Business innovative Lösungen für die digitale Transformation.

Veröffentlicht unter Mobile, Web Development | Verschlagwortet mit , , , , | Kommentar hinterlassen