Prozesse digitalisieren – Wie funktioniert das?

Workflows, Abläufe und Prozesse digitalisieren. Das ist ein Wunsch vieler Unternehmen die in Richtung prozessorientiertheit streben. Zunächächst aber stellt sich die Frage: Was ist ein Prozess?

Definition Prozess

Laut Wikipedia ist ein Prozess wie folgt definiert:

Ein Prozess (von lat. procedere = vorwärts gehen) kann als ein Verlauf, eine Entwicklung oder ganz allgemein als ein System von Bewegungen bezeichnet werden. Vergleichbare Begriffe sind auch „Hergang“, „Fortgang“, „Ablauf“, und „Vorgang“.

Die richtige Datenstrukutur

Wie kann man also einen „Ablauf“ mit einer geeigneten Datenstruktur in die Welt der Informatik überführen? Am Besten dafür eignen sich dafür Graphen.

Ähnlich zu Graphen ist auch die Baumstruktur, die aber bei Prozessen nicht wirklich sinnvoll eingesetzt werden kann, da oft Zyklen und geschlossene Pfade vorkommen.

Linked-Lists eigenen sich dafür ganz gut, wobei in jedem Element das nächste als Pointer gespeichert wird. Problematisch ist jedoch wenn mehrere Elemente als Nachfolger gespeichert werden sollen.

Am Besten ist es, wenn man eine Datenbank verwendet wobei man 2 Tabellen verwendet. Eine Tablle mit den Elementen (Nodes) und eine weitere Tabelle für den Verbindungen zwischen den Elementen (Links).

Das würde dann in etwa so aussehen:

Tabelle „Nodes“

1      neues Element

2     bearbeitetes Element

3    abgeschlossenes Element

4    storniertes Element

Tabelle „Links“

1      ->     2

2     ->     3

3    ->      4

1     ->      4

2     ->      4

Oder etwas anschaulicher als Grafik:

Graphdarstellung für Prozesse digitalisieren
Visualisierung eines einfachen Prozesses

 

 

 

 

 

 

 

 

 

 

Damit lassen sich schnell und einfach Prozesse oder Workflows in einer Datenbank abbilden. Somit ist es möglich, ganze Arbeitsabläufe zu digitalisieren und verarbeiten. Dieses Schema kann dann beliebig erweitert werden. Beispielsweise können Teilschritte automatisiert werden und Schnittstellen zu anderen Tools sind auch umsetzbar.

Prozesse digitalisieren, Am Beispiel Spaghetti kochen

Jetzt haben wir also das nötige Vorwissen und können einen einfachen Prozess digitalisieren. Am besten eignet sich dafür ein Kochrezept. Ich werde Spaghetti kochen als Beispiel nehmen. Die folgenden Schritte werden benötigt:

  1. Topf mit Wasser füllen
  2. Topf mit Wasser darauf stellen
  3. Herd einschalten
  4. Wasser kochen
  5. Spaghetti ins Wasser geben
  6. Warten bis Spaghetti durch sind
  7. Spaghetti sind fertig

Als kleine Hausaufgabe darfst du dir überlegen, wie man diesen Koch-Prozess am Besten digitalisieren kann. Wenn du eine Lösung hast, kannst du sie gerne als Kommentar posten. Ich freue mich über jede Lösung.

 

Einen Web Bot mit Python und Selenium erstellen

Web Bot Darstellung

Ein Web Bot ist ein Programm oder Skript, welches automatisch Aufgaben bearbeitet die sich oft wiederholen, wie zum Beispiel Preise von einem Onlineshop auslesen und in einer Datenbank speichern. Damit kann man Preisänderungen verfolgen oder darstellen und gegebenenfalls die Waren zum richtigen Zeitpunkt einkaufen.

Was braucht man um einen Web-Bot zu machen?

Um einen simplen Web-Bot zu schreiben braucht man folgende Dinge:

  • Browser
  • Webdriver
  • Python
  • Selenium-Modul
  • Bot-Code

Was ist ein Webdriver?

Ein Webdriver ist ein Steuerungsprogramm für den Browser. Damit kann man die Aktivitäten die man am Browser macht, automatisieren. Zum Beispiel „rufe die URL http://www.google.com auf“ oder „Zeige mir den Quelltext der aktuellen Seite“. Weiters kann man Javascript-Code live einspeisen oder den DOM-Elemente suchen wie zum Beispiel Links mit einem bestimmten Linktext.

Für die gängisten Browser existieren die notwendigen Driver. Diese müssen nicht installiert werden sondern sind ein eigenständiges Programm und funktionieren unter Windows auch ohne Administrationsrechte.

Download für die gängigsten Browser

Webdriver für Firefox
Webdriver für Chrome

Wie fange ich mit dem Web Bot an?

Nachdem das Selenium Modul installiert wurde kann nun mit der eigentlichen Abeit begonnen werden.

Dazu legt man sich am besten ein neues python-File an und gibt folgende Zeilen Code ein:

from selenium import webdriver

# Neue Instanz erzeugen mit Firefox
driver = webdriver.Firefox()
# zu Google navigieren
driver.get("http://www.google.com")
# den aktuellen Titel der Website auslesen
print(driver.title)
# driver wieder schließen
driver.quit()

Wenn alles funktioniert hat, wird der Browser gestartet, zu Google navigiert und der Title ausgelesen. Desweiteren gibt es noch unendliche Möglichkeiten, dazu empfehle ich aber die Dokumentation bei Selenium selbst zu lesen.

Wichtig ist das der Webdriver im gleichen Verzeichnis liegt wie das Python-Script. Bei mir hat es nämlich nicht funktioniert, da der Webdriver wo anders gelegen war. Alternativ kann man auch den Pfad zum Webdriver im Code angeben und mit dieser Zeile:

driver = webdriver.Firefox(executable_path=r'C:\webdriver\geckodriver.exe')

Zum Beispiel kann man die Suchposition der eigenen Domain bei Google auslesen  und in einer Datenbank speichern.

Big Data Algorithmen – Chancen und Risiken

Big Data – Was bringt das?

Es geht darum die Chancen und Risiken von Big Data Algorithmen aufzuzeigen und die Vor- und Nachteile solcher Systeme abzuwägen.

Da die weltweite Menge an Daten stetig wächst, gewinnen diese autonomen Systeme immer mehr an Bedeutung. Es ist also wichtig, sich so früh wie möglich damit auseinander zu setzen, da die Daten im Netz meist dauerhaft gespeichert werden und Nutzer überall Spuren in Form von zum Beispiel Cookies hinterlassen und somit Rückschlüsse gezogen werden können.

Einige Unternehmen nutzen diese gesammelten Daten um damit Profit zu machen ohne das die Nutzer es wissen oder zugestimmt haben. Es werden Verhaltensprofile erstellt, die auf dem Nutzungsverhalten, eingegebenen Suchanfragen, Standortverläufen und vielen anderen Daten basieren.

Ausblick in die Zukunft

Es ist geplant, Vorhersagen auf Basis dieser Daten zu treffen und sogar algorithmische Entscheidungen zu fällen. Dies bringt allerdings gewisse Risiken und Gefahren mit sich, welche erst durch rechtliche Faktoren, Kosten/Nutzen-Analysen, Datenschutzgesetzen und vielen anderen Faktoren abgewogen werden müssen.

Ist unsere Freiheit in Gefahr?

So lange jedoch eine Wahlmöglichkeit besteht, kann jeder für sich entscheiden ob eine Verwendung von solchen Systemen gut oder schlecht ist. Jedoch planen bereits manche Regierungen wie zum Beispiel China solche Systeme verpflichtend einzusetzen und gefährden damit einzelne Personen, zumindest nach dem deutschen Datenschutzrecht.

Darüber hinaus ist es schwierig Datenschutzbestimmungen für das Internet festzulegen, da das Internet global verteilt funktioniert und Gesetze nur für die jeweiligen Länder gelten.

Cloud und Algorithmen
Soziale Medien und die Cloud