Blockchain – Verbesserung der Transaktionssicherheit durch Kryptografische Verkettung – Teil 1: Einführung

Einleitung

Das Wort „Blockchain“ fiel erstmalig im Zusammenhang mit Bitcoin als dezentrales Netzwerk für Zahlungen in der gleichnamigen digitalen Währung. Hierbei beschreibt die Blockchain eine zugrundeliegende Technologie, in der alle Transaktionen öffentlich und unveränderbar verzeichnet sind. Dazu wird mittels kryptografischer Verfahren die Korrektheit aller Transaktionen sichergestellt – beispielsweise die richtige Transaktionsreihenfolge, Verhinderung der doppelten Ausgabe eines Bitcoins bei einer Zahlung oder Schutz vor Manipulation einer Transaktion. Der entscheidende Punkt ist die Tatsache dass keine zentrale Vertrauensinstanz notwendig ist, da die Teilnehmer dem Inhalt der Blockchain selbst vertrauen.

Aber die technische Entwicklung schreitet mit hoher Geschwindigkeit fort. Daher fällt der Begriff „Blockchain“ mittlerweile nicht nur im Zusammenhang mit digitalen Währungen. Vielmehr ist von einer Technologie die Rede, welche bestehende Produkte, Dienstleistungen und sogar Geschäftsmodelle disruptiv beeinflussen wird.

Um die Potentiale und Auswirkungen der Blockchain-Technologie besser beurteilen zu können, haben sich in den letzten Jahren verschiedene Firmen aus unterschiedlichen Technologien und vor allem Finanzbereichen in Konsortien zusammengeschlossen:

  • Das R3 Konsortium, welches vornehmlich einen Zusammenschluss von rund 80 Firmen aus der Finanzwirtschaft (UBS, Credit Suisse, Deutsche Bank, Commerzbank, …) ist. (R3CEV LLC, 2017)
  • Das IoT-Consortium, zu dem u.a. Bosch Ltd. Cisco Systems Inc. gehören, untersucht inwiefern Blockchain-Technologie zur Absicherung und Verbesserung von IoT-Netzwerken eingesetzt werden kann. (Faife, 2017)
  • Im Hyperledger(Enterprise Ethereum Alliance) Konsortium haben sich mehr als 120 Firmen aus dem Bereich Finanzen, Banken, IoT und der Industrie organisiert. (Hyperledger)
  • Enterprise Ethereum Allianz mit rund 500 Startups, Unternehmen, Akademische Einrichtungen aus den unterschiedlichsten Bereichen. (Förster, 2017)

Darüber hinaus wurden im Jahr 2016 rund 500 Mio. USD an Venture-Kapital für Blockchain-Technologien in Startups und Technologie-Firmen investiert. (Coindesk)

Auch wenn nach heutigem Stand noch nicht genau ersichtlich wird, für welche Bereiche und Anwendungsgebiete Blockchain-Technologien verwendet werden können, so wird daraus doch ersichtlich, dass dieser neuen Technologie ein großes Potential zugetraut wird.

Im nachfolgenden möchte dieser Beitrag eine kurze Einführung in die Blockchain-Technologie geben und aufzeigen in welchen Gebieten Potentiale und mögliche Anwendungsfelder liegen.

 

Was ist die Blockchain (Definition)?

Blockchain ist eine neue Technologie zur Verifizierung von Datentransaktionen in einem dezentral organisierten Netzwerk mittels kryptografischer Verfahren. Die Blockchain bietet Nachvollziehbarkeit sowie Fälschungssicherheit von Transaktionen, ohne dabei auf eine zentrale Instanz angewiesen zu sein. (Voshmgir, 2017)

Die nachfolgende Abbildung zeigt vereinfacht den prinzipiellen Aufbau einer Blockchain. Wie der Name suggeriert, werden in einer Blockchain einzelne Blöcke aneinander „gekettet“. Dabei zeigt ein Block immer auf seinen Vorgänger, wodurch in der Blockchain eine verifizierbare Kette von Blöcken entsteht, welche vom aktuell letzten Block bis zum ersten Block reicht. Der erste Block wird im Allgemeinen auch als Genesis-Block bezeichnet, da dieser keinen Vorgänger besitzt.

Innerhalb eines Blocks werden dann die einzelnen Transaktionen verzeichnet. Eine Transaktion kann wie im Beispiel ein Zahlungsvorgang sein. Aber es kann auch etwas ganz anderes sein wie z.B. ein Lieferschein oder eine Garantieurkunde. Vom Prinzip her können Blockchains alle möglichen Daten wie Texte, Bilder oder gar Programmcode speichern.

Blockchain Technologie

Abbildung 1 Blockchain; eigene Darstellung

 

Damit eine neue Transaktion in der Blockchain gespeichert werden kann, muss ein neuer Block generiert, die Transaktion darin verzeichnet und der Block an die bestehende Blockchain angehängt werden. Dieser Prozess wird als „Mining“ bezeichnet und unterliegt bestimmten Regeln. Die Regeln werden vom Protokoll der Blockchain vorgegeben und dienen dazu, den Konsens zwischen allen Teilnehmern zu ermöglichen.

Denn sobald ein Block erfolgreich an die Blockchain „angekettet“ wurde, werden alle Transaktionen innerhalb des Blocks von den Teilnehmern als valide angesehen.

Peer-to-Peer Netzwerk (Blockchain)

Abbildung 2 Peer-to-Peer Netzwerk, eigene Darstellung

 

Die Verteilung der Blockchain erfolgt dezentral über ein Peer-to-Peer Netzwerk in welchem alle Knoten untereinander gleichberechtigt sind. Weiterhin ist jeder Knoten mit mehreren anderen Knoten des Netzwerks verbunden, um untereinander den aktuellen Stand der Blockchain auszutauschen sowie neue Transaktionen im Netzwerk zu verbreiten. So können diese dann in einem späteren Block aufgenommen werden. Als weitere Aufgabe überprüft jeder Knoten den aktuellen Stand der Blockchain auf Einhaltung der Regeln.

Vergleicht man dies nun mit aktuellen verteilten Datenbanksystemen, sind diese überwiegend zentral organisiert. So gibt es einen Masterknoten, welcher die Datenhoheit über getätigte Transaktionen besitzt und dem alle anderen Knoten (Slaves) vertrauen. Eine Validierung findet hier bei den angeschlossenen Slaves nicht statt. Dadurch sind diese Systeme anfällig für Manipulationen, wenn beispielsweise der Masterknoten durch einen Akteur infiltriert wird und über diesen dann manipulierte oder falsche Informationen verteilt werden.

Im Gegensatz dazu sind im Blockchain-Netzwerk alle Knoten gleichberechtigt und jeder Knoten überprüft die Blockchain auf Einhaltung der Regeln. Sollte somit ein Knoten manipulierte oder fehlerhafte Informationen verteilen, so würde dass von den anderen Knoten unmittelbar erkannt werden.

Weiterhin hat das Netzwerk auf Grund der hohen Redundanz eine sehr hohe Ausfallsicherheit, da jeder Knoten eine Kopie der Blockchain besitzt. Somit ist es unempfindlich gegen Ausfälle falls einzelne Konten nicht mehr erreichbar sind, sei es aus technischen oder politischen (Zensur) Gründen.

Blockchain-Plattformen

 .

 Public Blockchain-Plattform

Bei der bis jetzt beschriebenen Architektur für eine Blockchain handelt es sich um eine „Public Blockchain-Plattform“. Das heißt, jeder kann die Blockchain verwenden, indem er beispielsweise selbst einen Knoten betreibt, der sich dann mit dem Netzwerk verbindet. Eine Limitierung des Zugangs zum Netzwerk existiert nicht.

Somit sind die Daten innerhalb der Blockchain transparent, da alle Teilnehmer alle Transaktionen einsehen können. Gleichzeitig bleibt durch Kryptografie die Privatsphäre gewahrt, da eine Zuordnung einer Transaktion zu einer Organisation, Firma oder Person nicht ohne weitere Informationen möglich ist. Allerdings ist die Performance eines solchen Netzwerks verglichen mit einem verteilten Datenbanksystem gering. So sind im Bitcoin Netzwerk aktuell (Stand April 2017) maximal 7 Transaktion/Sekunde möglich von denen derzeit rund 4 Transaktionen/Sekunde erreicht werden.
Weiterhin ist die Blockgröße auf 1 Mbyte limitiert wobei ungefähr alle 10 Minuten ein neuer Block hinzukommt. Dies spiegelt sich auch in den Gebühren für eine Transaktion wieder.

Um die Grenzen der oben genannten Limitierung weiter hinauszuzögern haben sich neben der Public Blockchain mit der Private Blockchain und der Consortium Blockchain zwei weitere Ansätze herausgebildet. Hierbei wird der Anspruch an ein vollkommen dezentrales Netzwerk, in dem alle Knoten gleichberechtigt sind, herabgesetzt. Dadurch wird vor allem eine signifikante Erhöhung der Transaktionsrate pro Sekunde mit gleichzeitiger Absenkung der Transaktionskosten erreicht. (Thompson, 2016)

Beispiele für Public Blockchain-Plattformen:

  • Bitcoin (Netzwerk für Zahlungen)
  • Ethereum (Smart Contract Plattform)

Private Blockchain-Plattformen

Private Blockchain-Plattformen werden von einem einzelnen Anbieter (bspw. einer Firma oder Organisation) entwickelt und betrieben. Dieser hat somit die Hoheit über die Regeln zum Erreichen des Konsens innerhalb der Blockchain sowie welche Transaktionen in die Blöcke aufgenommen werden. Dies setzt einen hohen Grad an Vertrauen in den Betreiber voraus. Der Vorteil ist aber, dass es möglich ist den Teilnehmerkreis stark einzuschränken, welcher lesenden Zugriff auf die Informationen innerhalb der Blockchain erhält. Dies kann je nach Anwendungsfall wünschenswert sein.

Beispiele für Private Blockchain-Plattformen

  • – IBM Hyperledger, Blockchain-as-a-Service (BaaS)

 Consortium Blockchain-Plattformen

Consortium Blockchain-Plattformen sind private Blockchains mit dem Unterschied, dass diese von mehreren Anbietern, welche sich zusammengeschlossen haben, entwickelt und betrieben werden. Dadurch wird die „Macht“ über das Netzwerk auf mehrere vorausgewählte Teilnehmer verteilt.

Beispiele für Consortium Blockchain-Plattformen

  • Hyperledger
  • Ethereum Enterprise
  • Ripple

Diese Art von Blockchains hat das derzeit größte Potential, die Bedürfnisse spezifischer Märkte nach automatisierten, hoch sicheren Transaktionen abzubilden.

 


Die folgenden Artikel dieser Beitragsreihe „Blockchain – Verbesserung der Transaktionssicherheit durch Kryptografische Verkettung“ werden sich mit den fünf ausgewählten Merkmalen beschäftigen, die beim Einsatz von Blockchain Technologie relevant sind sowie Anwendungsfälle und Einsatzszenarien vorstellen.

Weitere interessante Artikel finden Sie in unserem Blog

 


Literaturverzeichnis

Coindesk. (kein Datum). Blockchain Venture Capital. Abgerufen am 10. April 2017 von http://www.coindesk.com/bitcoin-venture-capital/

Enterprise Ethereum Alliance. (kein Datum). Enterprise Ethereum Alliance. Abgerufen am 10. April 2017 von http://entethalliance.org

Förster, M. (1. März 2017). Heise.de. Abgerufen am 10. April 2017 von Blockchain: Enterprise Ethereum Alliance ins Leben gerufen: Blockchain: Enterprise Ethereum Alliance ins Leben gerufen

Faife, C. (27. Januar 2017). CoinDesk. Abgerufen am 10. April 2017 von Bosch, Cisco, Gemalto and More: Tech Giants Team Up For Blockchain-IoT: http://www.coindesk.com/bosch-cisco-gemalto-and-more-tech-giants-team-for-blockchain-iot/

Hyperledger. (kein Datum). Blockchain Technologies for Business. Abgerufen am 10. Aprli 2017 von https://www.hyperledger.org

MAL, S. N. (7. Februar 2017). NEUN MAL SECHS. Abgerufen am 10. April 2017 von http://neunmalsechs.blogsport.eu/stuemperei/blockchain-exploration/ueberblick-blockchain-konsortien/

R3CEV LLC. (2017). R3. Abgerufen am 10. 4 2017 von http://www.r3cev.com

Thompson, C. (2016. Oktober 2016). Blockchain Daily News. Abgerufen am 20. April 2017 von The difference between a Private, Public & Consortium Blockchain.: http://www.blockchaindailynews.com/The-difference-between-a-Private-Public-Consortium-Blockchain_a24681.html

Voshmgir, S. (30. Januar 2017). Blockchains, Smart Contracts und das Dezentrale Web. 36. (T. S. Berlin, Hrsg.) Berlin, Berlin, Deutschland.

 

Wie Sie mit Impact Mapping die Projektressourcen optimieren

 

Wissen Sie was Sie entwickeln sollen? Mit Sicherheit! Aber wissen Sie auch, warum genau diese Funktion für Ihr Projekt wichtig ist und für wen diese Funktion von Bedeutung ist? Wenn nein, ist Impact Mapping die Methode der Wahl für Sie.

 

Impact Mapping: Relevanz statt nur Code

Es gibt immer mehr zu programmieren, als es die Ressourcen zulassen. Eine Herausforderung in agilen Softwareprojekten ist es daher in der Anforderungsermittlung, die wichtigsten Funktionen herauszufinden. Impact Mapping  ist ein Planungstool, welches dabei hilft, die Funktionen mit dem größten Effekt auf den Unternehmenserfolg zu identifizieren. Dadurch hilft die Impact Map, Projektressourcen optimal einzusetzen.

Eine Impact Map ist eine vierstufige Mindmap, welche die Beziehungen zwischen Geschäftszielen, Akteuren, Auswirkungen und Maßnahmen visualisiert.

Dabei werden mit der Impact Map folgende Fragen beantwortet:

  • Warum machen wir das Projekt? (Ziel)
  • Wer wird durch das Projekt beeinflusst? (Akteure)
  • Welche Verhaltensweisen der Akteure möchten wir erreichen? (Auswirkung)
  • Was müssen wir liefern oder entwickeln, um die gewünschten Verhaltensweisen zu erreichen? (Maßnahmen)

In unserem Beispiel wird eine E-Commerce-App betrachtet. Nachfolgend ist die Impact Map für diesen Anwendungsfall dargestellt.

 

 

Vom „Warum?“ zum „Was?“: Aufbau einer Impact Map

Das Ziel (Warum?)

Der zentrale Punkt in der Impact Map ist das Ziel. Allzu oft wird sich bei IT-Projekten nur gefragt „Was“ umgesetzt werden soll oder eventuell noch „Wie“ die Umsetzung technisch erfolgen soll. Das „Warum?“ kommt in den meisten Fällen zu kurz. Dabei ist die Frage nach dem „Warum“ die wichtigste Frage, wenn das Projekt erfolgreich sein soll. Zu wissen, warum man etwas tut, ist die Basis, um gute Entscheidungen zu treffen.
Das zentrale Element der Impact Map ist daher das Ziel. Das Ziel definiert das Geschäftsziel, welches erreicht werden soll. Im Beispiel lautet das Geschäftsziel „Umsatz um 5 % in 6 Monaten steigern“.

 

Akteure (Wer?)
Im nächsten Schritt werden die Akteure ermittelt. Die Akteure sind diejenigen, die einen Einfluss auf die Projektergebnisse haben. Dies können Nutzer der Software oder andere Personen sein, welche vom Projekt betroffen sind (Stakeholder). Hierbei werden nicht nur die Personen miteinbezogen, welche zum Projekterfolg beitragen, sondern auch diejenigen, welche einen negativen Einfluss auf die angestrebten Ziele haben könnten.  Im Grunde wird hier also eine Stakeholderanalyse durchgeführt. In der vorliegenden Impact Map ist der Akteur der Kunde, welcher über die E-Commerce-App Einkäufe tätigen soll.

 

Auswirkungen (Wie?)
Die Auswirkungen setzen die Akteure in Bezug zu den Business-Zielen.  Sie beschreiben die gewünschte Verhaltensänderung der Akteure, damit die Geschäftsziele erreicht werden. Damit das Ziel der Umsatzsteigerung erreicht werden kann, müssen die Kunden mehr kaufen. Dies könnte dadurch geschehen, dass sie Artikel, die sie bisher noch  nicht gekauft haben, nun über die App beziehen. Eine andere Möglichkeit, den Umsatz zu steigern, könnte darin bestehen, dass der Einkaufsprozess so komfortabel gestaltet wird, dass die Kunden regelmäßig über die App einkaufen und nicht zur Konkurrenz ausweichen.

 

Maßnahmen (Was?)
Die Maßnahmen beschreiben, was die Organisation oder das Team entwickeln oder anbieten muss, um das gewünschte Verhalten der Akteure zu erreichen. Um den Kauf einer breiteren Produktpalette anzuregen, könnten beispielsweise verwandte Artikel angezeigt werden, um dadurch weitere Verkaufsimpulse zu setzen.
Der Bestellprozess könnte vereinfacht werden, indem ein Barcode-Scanner innerhalb der App bereit gestellt wird, wodurch die Artikeleingabe im Gegensatz zur manuellen Artikelnummerneingabe massiv vereinfacht wird. Auch eine Anzeige der bisher bestellten Artikel würde den Aufwand des Bestellprozesses für bereits bestellte Artikel reduzieren, da diese nicht aufwendig herausgesucht werden müssten.

  

Einsatz in der Praxis

Die Impact Map kann nach dem Top-Down-Prinzip oder Botton-Up-Prinzip aufgebaut werden.

Beim Top-Down-Ansatz wird ausgehend vom Geschäftsziel die Impact Map aufgebaut. Bei diesem Vorgehen können Ideen für Funktionen oder Maßnahmen generiert werden, um die angestrebten Geschäftsziele zu erreichen. Aus diesem Grund können die entsprechenden Anforderungen abgeleitet werden. Für eine genauere Spezifikation der Anforderungen und die anschließende Release-Planung bietet sich ergänzend die Methode des User Story Mappings an.

 

Sind bereits Anforderungen vorhanden, können diese mittels des Impact Mappings priorisiert werden. Dazu wird zunächst eine Impact Map aufgebaut und es werden die bisherigen Anforderungen mit dem Geschäftsziel in Beziehung gesetzt. Wird während des Prozesses festgestellt, dass eine Funktion wenig oder keinen Bezug zum Geschäftsziel hat, empfiehlt es sich, diese niedrig zu priorisieren oder ganz fallen zu lassen.

 

Fazit

Impact Mapping hilft den wirtschaftlichen Mehrwert eines Produktes oder Projektes im Blick zu behalten. Es visualisiert die Beziehungen zwischen den Funktionen und den erstrebten Geschäftszielen.  Durch den Einsatz dieser Methode können die Projektressourcen optimal eingesetzt werden und der maximale Nutzen erzeugt werden.

 

Verwandte Artikel:
Innovationsentwicklung mit User Story Mapping
http://www.sic-software.com/innovationsentwicklung-mit-user-story-mapping/

 

Sie benötigen Unterstützung?
Wir helfen Ihnen bei der Spezifizierung Ihrer Anforderungen.
http://www.sic-software.com/ideenworkshops/

Software erlebbar machen, ohne eine Zeile Code zu schreiben

Das Projekt war gescheitert. Eigentlich war alles nach Plan verlaufen. Nach der Spezifikation der Anforderungen war ein umfangreiches Konzept erstellt worden. Auf knapp dreihundert Seiten, wurde bis ins kleinste Detail spezifiziert, wie sich die Software zu verhalten hatte. Sowohl das Projektteam als auch der Kunde waren sich einig, dass genau so das Produkt umgesetzt werden sollte. Die Software war gemäß der Spezifikation implementiert und getestet worden. Also sollte das Projekt erfolgreich sein, oder? Leider nein! Das Ergebnis war nicht das, was sich der Kunde vorgestellt hatte. Die Endkunden beschwerten sich, dass die Software ihnen nicht bei ihren Problemen half und zudem schwer zu bedienen war. Neuentwicklung? Viel zu teuer! Also blieb die Software, wie sie war und alle Beteiligten waren unzufrieden. Wenn man doch nur in die Zukunft schauen könnte, um schon vor der Implementierung zu wissen, ob ein Projekt erfolgreich sein wird …

Eine Kristallkugel haben wir auch nicht, aber diese ist auch nicht notwendig. Mit geeigneten Prozessen und Methoden kann dem geschilderten Problem entgegengewirkt werden.
Dazu sind zwei Voraussetzungen nötig:

  1. Das Konzept sollte so früh wie möglich erlebbar gemacht werden
  2. Schon vor der Implementierung sollte das Konzept getestet und iterativ weiterentwickelt werden

 

Lebendige Objekte statt tote Dokumente

 

Umfangreichere Spezifikationen garantieren keinen Projekterfolg. Sie werden selten von allen Beteiligten gelesen – und wenn doch, werden sie von jedem anders verstanden. Außerdem schleichen sich schnell Inkonsistenzen ein, die aufgrund des Dokumentenumfangs kaum bemerkt werden können. Zusammenfassend gesagt, dienen umfangreiche Dokumente mehr der Absicherung als der Kommunikation. Jedoch ist ein frühzeitiges gemeinsames Bild vom Produkt essentiell für den Projekterfolg.

Hier stellen Prototypen ein besseres Medium dar, um eine Produktidee oder ein Konzept zu kommunizieren. Prototypen helfen, die Software schon erfahrbar machen, bevor die erste Zeile Code geschrieben wurde. Dabei muss es sich weder um programmierte Prototypen handeln, noch müssen die entstandenen Entwürfe pixelgenau ausgestaltet sein. Entscheidend ist, dass  der Prototyp das kommuniziert und erlebbar macht, was gerade im Projektteam oder mit den Endnutzern besprochen wird.

Wissen statt raten

Jede Idee ist, so gut sie auch klingen mag, am Anfang eine Hypothese. Ohne eine Überprüfung ist eine Hypothese kaum etwas wert. Um sicher zu stellen, dass eine Produktidee erfolgreich sein kann, muss diese getestet werden. Mit Prototypen kann eine Idee getestet werden, ohne dass das eigentliche Produkt fertig entwickelt werden muss. Da die Erstellung eines Prototypen nur einen Bruchteil der späteren Entwicklungskosten ausmacht, können kostengünstig mehrere Iterationszyklen mit dem Prototyp vollzogen werden, bevor das eigentliche Produkt entwickelt wird.

 

Fehler so früh wie möglich machen!

 

Auf den ersten Blick scheint es so, dass die  Erstellung von Prototypen unnötige zusätzliche Kosten für Projekt verursacht. Jedoch ist dies nur eine sehr kurzsichtige Betrachtungsweise. Auf den gesamten Projektverlauf gesehen, sparen Prototypen mehr Geld ein, als sie kosten.

Je weiter ein IT-Projekt fortgeschritten ist, desto teurer wird es, Fehler zu beseitigen oder Änderungen am Produkt vorzunehmen.  Fehler per se lassen sich nicht vermeiden, doch teure Fehler können vermieden werden. So kostet die gleiche Änderung im Prototyp einige Minuten, jedoch in der Entwicklung mehrere Stunden bis Tage.

Fazit

Der Einsatz von Prototypen spart langfristig Geld und sichert den Projekterfolg. Er bietet folgende Vorteile:

  • Besseres Feedback
    Das Produkt ist in einem sehr frühen Stadium erfahrbar. Da das Abstraktionsniveau zum Verständnis bei einem Prototypen sehr gering ist, kann frühzeitig von allen Projektbeteiligten Feedback eingeholt werden.
  • Validiertes Konzept vor der Entwicklung
    Schon vor der ersten Zeile Code konnten Sie oder Ihre Endkunden einen Eindruck vom Endprodukt erhalten. Bereits in der Konzeptionsphase kann der Prototyp mit  Nutzern getestet werden.
  • Gemeinsames Verständnis des Produktes von Anfang an
    Damit das Projekt erfolgreich wird, ist es von essentieller Bedeutung, dass alle Projektbeteiligten das gleiche Bild vom Produkt im Kopf haben.

 

 

 

Quick-Self-Assessment zur Digitalisierung

Ist Ihr Unternehmen für die digitale Zukunft gerüstet? Finden Sie’s heraus – mit unserer neuen „Checkliste Digitalisierung“, einem Quick-Self-Assessment zur digitalen Transformation. Sie können die Checkliste kostenlos herunterladen und mit geringem Aufwand schnell und einfach den Stand der digitalen Transformation in Ihrem Unternehmen überprüfen.

Mit der Checkliste beleuchten Sie den digitalen Reifegrad in den vier entscheidenden Dimensionen der Digitalisierung: Strategie, Mitarbeiter, Technologie und Innovationsfähigkeit. Als grober Leitfaden für die digitale Transformation in Ihrem Unternehmen bietet die Checkliste Digitalisierung eine erste Orientierung und kann Ihnen dabei helfen, Ihre eigene „Digital Roadmap“ für Ihr Unternehmen zu erstellen.

Hier können Sie die „Checkliste Digitalisierung“ kostenlos herunterladen.

Blogreihe: Microsoft Dynamics CRM erfolgreich nutzen – Teil 2 – Die Versionen

 

Microsoft Dynamics CRM (TEIL 2) – Unterschiede der Versionen

In diesem Teil der Serie erfahren Sie:

  • Welche verschiedenen Versionen von MS-Dynamics CRM es gibt
  • Wie sich der Funktionsumfang der einzelnen Versionen unterscheidet
  • Welche Version für den Einstieg optimal ist

Weiterlesen

Blogreihe: Microsoft Dynamics CRM erfolgreich nutzen – Teil 1 – Überraschend einfach einsteigen

Für Unternehmen die ihre kundenorientierten Prozesse in Vertrieb und Marketing digitalisieren möchten, ist ein CRM System wie Microsoft Dynamics CRM unverzichtbare Voraussetzung. Viele Verantwortliche sehen die Einführung eines CRM Systems allerdings als eine Herkulesaufgabe, die sie nur mit großer Mühe bewältigen können. Mit der richtigen Strategie kann der Einstieg jedoch erstaunlich einfach gelingen.

In dieser Blogreihe zeigen wir in leicht verständlicher Sprache wie die ersten Schritte für den erfolgreichen Einsatz eines CRM Systems, hier am Beispiel des „Microsoft Dynamics CRM“, aussehen.

Weiterlesen

Innovationsentwicklung mit User Story Mapping

In unseren Kundenprojekten wird von unseren UX Design Spezialisten regelmäßig ein sehr hilfreiches und nützliches Tool eingesetzt: Das „User Story Mapping“. Hierbei handelt es sich um eine von Jeff Patton entwickelte Methode, mit der im Rahmen von agiler Produktentwicklung eine stimmige User Experience geschaffen wird. So lässt sich der Erfolg für die auf diese Weise realisierten digitalen Produkte maximieren.

Beim User Story Mapping wird der Arbeitsfluss des Users, also des Produktnutzers, in einzelne „User Stories“ unterteilt und mit Hilfe von Klebezetteln auf einer Wand in Form einer Art Karte („Map“) visualisiert. Die Flexibilität der Klebezettel ermöglicht eine schnelle und einfache Optimierung der Prozesse bzw. des Produktes durch Umsortieren, Aufteilen, Ergänzen, Erweitern, Vertiefen, usw. An einer User Story Mapping Session nehmen idealerweise alle am Produkt Beteiligten – vom Auftraggeber über den Designer bis zum Entwickler – teil und erarbeiten einen Konsens. Durch das bessere gemeinsame Gesamtverständnis vom Produkt, seinen Eigenschaften und seiner Anwendung wird die Gefahr reduziert, sich in unwichtigen Details zu verzetteln oder das Produkt an den Bedürfnissen des Produktnutzers vorbei zu entwickeln.

Mit User Story Mapping wird ein Produkt mit genau jenen Features entwickelt, die für den Anwender wirklich nützlich und dabei auch noch realisierbar und bezahlbar sind. Dabei können mehrere aufeinanderfolgende Release-Stufen festgelegt werden – angefangen vom „Minimum Viable Product (MVP)“ über Zwischenversionen bis zur finalen Version mit dem kompletten Feature-Set. Die in der ersten Session erstellte User Story Map bildet gleichzeitig eine Basis für das Projektmanagement. Im Verlauf des Projekts kann und soll die Story Map im Rahmen einer agilen Produktentwicklung in weiteren Sessions anhand von User Feedback, Tests und Erfahrungen dann permanent weiter optimiert werden.

Entsprechend einem vielfach von unseren Kunden geäußerten Wunsch nach einer kompakten Übersicht und Kurzanleitung zum User Story Mapping haben unsere Grafiker eine Infografik mit dem Titel „Innovationsentwicklung mit User Story Mapping“ erstellt, die wir hiermit gerne allen an der Methode Interessierten zur Verfügung stellen. zur Infografik

vorschau-infografik-user-story-mapping

MQTT Protokoll – Anwendungsbeispiele

Viele Leser unseres Blogs haben uns nach dem Studium unseres Grundlagenartikels zum MQTT-Protokoll nach Anwendungsbeispielen gefragt. Diesem Wunsch wollen wir gerne entsprechen und präsentieren Ihnen nachfolgend eine kleine Sammlung einiger interessanter Projekte, bei denen das MQTT-Protokoll zum Einsatz kommt.

Wir bei SIC! Software setzen das MQTT Protokoll im Bereich von Embedded Projekten sehr häufig ein, da dieses Protokoll einfach zu handhaben ist und sich dank breiter Unterstützung zum DeFacto-Standard im Bereich von Internet of Things (IoT) und Industrie 4.0 entwickelt hat.

Wie z.B. beim Forschungsprojekt IMPROVE, bei dem das MQTT Protokoll dazu eingesetzt wird, um Echtzeitdaten vom Fahrzeug zu übertragen.
http://www.sic-sales.de/forschungsprojekte/improve-automotive/

 

Da unsere Kundenprojekte der Vertraulichkeit unterliegen, listet die nachfolgende Sammlung beispielhaft öffentlich zugängliche Projekte mit MQTT-Support auf.

 

Beispiel 1: Übermittlung von Temperatursensor-Daten

Implementierung von MQTT auf dem  ESP8266 WIFI Funkmodul mit einer „einfachen“ publish / subscribe Routine.

http://www.s6z.de/cms/index.php/homeautomation-homecontrol/hardwareplattformen/esp8266/113-mqtt-basic-esp8266-mqtt-example

Beispiel 2: Übertragung des Haustürklingel-Signals

Installation des Moskito MQTT Broker auf einem Raspberry Pi. Ein ESP8266 nimmt das Klingelsignal an der Haustür auf und sendet es drahtlos an Fhem via MQTT.

http://blog.wenzlaff.de/?p=6487

Beispiel 3: Temperatur-Überwachung (Englisch)

Eine Musterhafte Lösung zur Überwachung von Temperaturen mit dem ESP8266 WIFI Funkmodul und der Anbindung an einen MQTT-Broker-Dienst unter Ubuntu:

http://www.instructables.com/id/Remote-Temperature-Monitoring-Using-MQTT-and-ESP82/

Beispiel 4: Basis-Plattform für Home-Automation (Englisch)

Implementierung eines MQTT-Stacks auf einem ATMEL  ATmega328p

http://blog.atx.name/building-avr-board-with-mqtt-support-for-iot/

Beispiel 5: Steuerung einer LED-Beleuchtung (Englisch)

Steuerung einer LED-Beleuchtung mit einem WS2812 LED Controller über das MQTT-Protokoll.

http://www.instructables.com/id/ESP8266-Led-Strip-MQTT-Control-Lights-WS2812/?ALLSTEPS

Beispiel 6: Regelung der CPU-Kühlung eines Raspberry Pi (Englisch)

Regelung der CPU-Kühlung eines Raspberry Pi über einen mit dem MQTT-Protokoll konfigurierbaren PID Regler:

http://www.instructables.com/id/PID-Control-for-CPU-Temperature-of-Raspberry-Pi/

Beispiel 7: Steuerung eines LCD-Displays (Englisch)

Applikationsbeispiel zur Steuerung eines LCD-Displays am INTEL Edison über das MQTT-Protokoll:

http://www.instructables.com/id/MQTT-what-is-this/

Weitergehende Grundlagen und Informationen zur MQTT-Standardisierung sind auf der Webseite http://mqtt.org/ beschrieben.

IoT Protokolle – MQTT vs. AMQP

Das „Internet of Things“ – kurz „IoT“ – ist im Moment das große Thema in der Industrie und Softwarebranche. Nachdem wir schon in einem etwas älteren Blockartikel das Thema MQTT aufbereitet und analysiert haben, ist es Zeit, sich einem zweiten wichtigen Protokoll im Umfeld von IoT anzunehmen. In diesem Artikel werden wir die beiden Protokolle vergleichen und mögliche Unterschiede bei den Einsatzszenarien beschreiben.

Wer heute ein IoT-Projekt umsetzen möchte, muss sich vor allem Gedanken darum machen, wie er die auszutauschenden Daten möglichst effizient und standardisiert übertragen kann. Zu diesem Zweck gibt es verschiedenste Protokollstandards, die entwickelt wurden, damit Plattform und Technologie übergreifend miteinander kommunizieren können.

Speziell im IoT Umfeld erfüllen die entwickelten Protokolle vor allem noch die Aufgabe möglichst mit wenigen Ressourcen auszukommen.

Was ist also AMQP und was kann es leisten?

AMQP steht für Advanced Message Queuing Protocol und wurde durch ein Konsortium von großen Unternehmen aus verschiedenen Branchen – u.a. VMware, Microsoft und Cisco – entwickelt. Bereits in 2010 gab es den ersten Draft des Protokolls.

Im Kern handelt es sich um ein asynchrones Protokoll zur Nachrichtenübertragung. Die bisher beste Erklärung zur Idee hinter AMQP findet man auf der Seite von RabbitMQ (https://www.rabbitmq.com/tutorials/amqp-concepts.html).

AMQP funktioniert demnach nach folgendem Prinzip:
Nachrichten werden an sogenannte Börsen (Exchanges) übertragen (vergleichbar mit einem Postamt). Die Börsen verteilen dann Nachrichtenkopien in Warteschlangen (Queue) basierend auf Regeln, sogenannten Bindings.

Die Nachrichten werden dann vom Empfänger direkt abgeholt, wenn er das möchte. Alternativ kann der Empfänger die Nachrichten auch bei einer Warteschlange abonnieren und bekommt diese dann direkt zugestellt.

Wenn die Nachrichten publiziert werden, kann der Herausgeber der Nachricht diese noch mit Attributen (Meta-Daten) versehen. Diese Metadaten können vom Empfänger beliebig genutzt werden.

Nachrichten bleiben so lange in den Warteschlangen, bis der Empfänger bestätigt hat, die Nachricht auch wirklich empfangen zu haben. Damit ist auch bei schlechtem Netz und Abbrüchen bei der Verbindung sichergestellt, dass die Nachricht den Empfänger erreicht.

Wenn eine Nachricht nicht zugestellt werden kann, erhält der Sender eine entsprechende Nachricht.
Die Umsetzung der Börse und der Warteschlange erfolgt innerhalb des sogenannten Brokers. Ein Broker ist z.B. der freie Server von RabbitMQ.

Die Börse ist dafür zuständig, die Nachrichten in eine oder mehrere Warteschlangen zu übertragen. Die Regeln dafür leiten sich aus den vordefinierten Austauschformaten (exchange types) und den Bindings ab.

Es gibt vier solche Austauschformate:

  • Direct –> Stellt eine feste Verbindung zwischen einer Börse und einer Warteschlange dar. Wenn eine Nachricht mit einem entsprechenden Schlüssel ankommt, wird diese gleich an die verknüpfte Warteschlange zugestellt.
  • Fanout –> Wird für sogenannte Broadcast Nachrichten verwendet. Die Nachricht wird von der Börse an alle angeschlossenen Warteschlangen zugestellt
  • Topic –> Wird für Publish/Subscribe Szenarien verwendet. Die Nachrichten werden an eine oder mehrere Warteschlangen ausgeliefert, abhängig vom Binding Key. Folgendes Bild von RedHat veranschaulicht das sehr schön.

    https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_MRG/2/html-single/Messaging_Programming_Reference/index.html
  • Headers –> Die Zustellung der Nachricht zur Warteschlange erfolgt hier über den Nachrichten-Header und nicht den Routing Key. Es ist vergleichbar mit dem Direct Routing – nur mit etwas mehr Möglichkeiten zur Regelerstellung.

Neben den Austauschformaten gibt es eine Reihe von Attributen für die Nachrichten. Die wichtigsten sind:

  • Name
  • Durability (gibt an, ob die Börse einen Neustart des Broker übersteht)
  • Auto-delete (Börse wird gelöscht, wenn keine Warteschlange diese benötigt)

AMQP vs. MQTT im Vergleich

Der größte Unterschied der beiden Protokolle besteht in den Möglichkeiten für die Nachrichtenzustellung. Während MQTT ausschließlich auf Publish/Subscribe basiert, lassen sich mit AMQP auch andere Zustellungsformen realisieren.

Außerdem ist der Unterschied bei der Implementierung nicht zu unterschätzen. MQTT ist mit seinen 5 Methoden relativ schnell und einfach umzusetzen, während AMQP schon einen vergleichsweise großen Umfang mit sich bringt. Das betrifft sowohl die Definition des eigenen Protokoll wie auch die Implementierung und Test.

Die kleinste Paketgröße bei AMQP ist mit 60 Byte auch nicht zu vernachlässigen. MQTT begnügt sich im besten Fall mit 2 Byte. Das beeinflusst insbesondere bei einer großen Zahl von Geräten und Nachrichten den aufzuwendenden Aufwand erheblich. Dazu kommen größer Laufzeiten der Pakete die je nach Anwendungsfall auch kritisch zu betrachten sind.

Es gilt also abzuwägen, ob der Funktionsumfang von AMQP im jeweiligen Anwendungsfall wirklich benötigt wird oder nicht. Wenn man mit dem Publish/Subscribe Model von MQTT auskommen kann, hat man in jedem Fall eine einfacher umzusetzende und auch ressourcenschonende Lösung.

Beacons Testlauf auf dem CC Day 2015

Beacons
Im Sommer 2013 wurden sie offiziell vorgestellt und so langsam kommt die ganze Sache auch ins Rollen. Die Rede ist von der Beacon Technologie. Beacons (Signalfeuer) sind kleine Bluetooth-Sender, welche an einem Ort angebracht werden können und in regelmäßigen Zeitintervallen ein Erkennungssignal aussenden. Dieses Signal kann dann von einem Beacon-fähigen Gerät wie einem Smartphone oder Tablet empfangen und in ortsabhängige Informationen umgewandelt werden. Die Anzahl an Anwendungsgebieten ist dabei grenzenlos. Meistens werden Beacons mit typischen Einsatzgebieten wie …

Weiterlesen