Xcontrol2017-03-15T17:16:54+00:00

Was ist Xcontrol ?

Grundsätzlich ist Xcontrol nach wie vor ein Ereignis gesteuerter „Job Handler“. Aufgrund seiner offenen Architektur (Plugins) ist die Software in der Lage die unterschiedlichsten Datenquellen zu verwenden und kann sämtliche Datenquellen (PlugIns) miteinander verbinden, Abhängigkeiten berücksichtigen und in Echtzeit auf Ereignisse reagieren.

Beispiel grössere Firma, z.B. Banken, Versicherungen, Pharma

Im Laufe der Zeit (täglich, wöchentlich, monatlich) werden Unmengen von Daten generiert. Ziel ist es die Daten in kontrollierter und automatischer Form zu verarbeiten und für weitere Prozesse aufzubereiten.

Beispiel Autohändler

Ziel ist es als erster zu erfahren wenn spezifische Autos auf verschiedenen Internet Plattformen publiziert wurden.

Allgemein

Aktuell wird an einer komplett neuen Version gearbeitet. Das Grundkonzept ist das gleiche wie JobControl, es wurde aber nach neuesten technologischen Kenntnissen neu implementiert und erweitert.

Xcontrol ist natürlich in der Lage alle Aufträge (Jobs) parallel zu verarbeiten. Die Performance wird nur durch die eingesetzte Hardware limitiert.
Aktuell wird bei der Raiffeisen Zentralbank Zürich, mit der Vorgänger Version (JobControl), die komplette Tagesendverarbeitung (ca. 500 Jobs) abgearbeitet.

Es besteht auch die Möglichkeit sog. LongRun Jobs einzurichten. Diese laufen dann permanent und können z.B. als Überwachung von Systemen in Echtzeit, oder z.B. als Sensor verwendet werden.

Im Falle von Störungen oder Job Fehler wird ein eMail und ggf. SMS ausgelöst.

Eine Eskalations Kette kann via unserer Software Xalert erstellt werden.
Xalert überprüft wichtige Xcontrol Jobs und wird, falls etwas nicht richtig lief, die entsprechende Eskalation starten.

Xalert

Xalert prüft wichtige Xcontrol Jobs und startet eine Eskalation falls etwas nicht ordnungsgemäss funktioniert.

Xalert ist ein integraler Bestandteil von Xcontrol

Fiktives Beispiel einer Jobkette

Hier ein kleines Beispiel einer möglichen Jobkette:

  • Um 04:00 startet ein Schedule Job welcher 3 weitere Jobs startet um Daten via Internet zu beziehen.
  • Nach jedem dieser Jobs wird jeweils ein Job gestartet welcher die gesammelten Daten in den SQL Server lädt.
  • Der Job für das berechnen der Kennzahlen darf erst laufen sobald alle Daten in den SQL Server geladen wurden.
  • In der Folge wird ein Job zum Erstellen der Berichte gestartet.
  • Um 06:00 wird ein Job gestartet welcher auf einem spezifischen PC Word und Outlook startet. Dieser Job darf jedoch nur laufen wenn der Job für das Berechnen der Kennzahlen erfolgreich ausgeführt wurde.
  • Danach wird via IoT PlugIn eine angebundene Kaffeemaschine gestartet.

Dieses Beispiel soll nur verdeutlichen dass jeder beliebige Job mit anderen verknüpft werden kann.

Technischer Aufbau

Nachfolgend eine Übersicht über die einzelnen Elemente.

Als Programmiersprache wird Microsoft .NET C# verwendet.
Als Basis dient .NET Framework 4.0
Das Datenbank System für das Repository dient Microsoft SQL Server 2014

Kundenkreis

Xcontrol kann eigentlich in allen grossen und kleineren Firmen eingesetzt werden. Überall dort wo es etwas zu automatisieren gibt.

Durch die PlugIn Technologie kann auch das Lizenzmodell variabel gestaltet werden. Ganz im Sinne von: Der Kunde kauft nur das was er wirklich braucht.

Server Konzept

Xcontrol.engine ist als Job Management und Arbeitsvorbereitung zu verstehen. Sie prüft ob ein Job laufen darf und verteilt diesen an den entsprechenden Worker, also den Arbeiter.

Pro Xcontrol Instanz (Verbund) kann nur ein xcontrol.engine Dienst laufen, aber beliebig viele xcontrol.worker.

Xcontrol Worker

Ein sog. xcontrol.worker ist die ausführende Instanz. Durch den Einsatz von mehreren Workers kann die anfallende „Last“ verteilt werden.

Xcontrol Agent

Ein xcontrol.agent kann auf entfernten Systemen installiert werden. Der Agent sichert die Kommunikation mit einer xcontrol.engine und kann auch Funktionen ausführen.

Xcontrol Client

Xcontrol Client ist als Windows Applikation und als Web Version (etwas eingeschränkte Funktionalität) vefügbar.

Hier ein kleiner Eindruck über die Benutzeroberfläche:

Xcontrol ist auf Mehrsprachigkeit ausgelegt, sowohl xcontrol.engine / xcontrol.worker als auch die Client Versionen.

Xcontrol Web Dienst

Xcontrol wird auch als Webdienst zur Verfügung stehen, für all jene welche keine eigene Infrastruktur aufbauen wollen oder können.

Je nach Abo Version können unterschiedliche Arten von Jobs, via die Domain xcontrol.swiss, erstellt und verwaltet werden

SQL Server PlugIns

Der Microsoft SQL Server ist für die meisten unserer Kunden das zentrale Datenbank System. Aus diesem Grund bieten wir verschiedene PlugIns in diesem Bereich an.

Hier eine Übersicht:

  • Ausführen von gespeicherten Prozeduren
  • Ausführen von beliebigen SQL Queries
  • SQL Integration Services Pakete ausführen (auch alte DTS Varianten)
  • Daten Import/Export

Start PlugIns

Jede Job-Kette muss irgendwie beginnen. Zu diesem Zweck gibt es sog. Start PlugIns. Diese können wie folgt eine Kette starten:

  • FileEvent: Xcontrol kann auf Dateien in beliebigen Verzeichnissen warten. Sobald eine definierte Datei (inkl. Wildcards) ankommt, wird eine Kette gestartet und z.B. die Datei in eine SQL Server Datenbank importiert.
  • Schedule: Zeitgesteuerter Start einer Kette.
  • Database Event: Sobald definierte Daten in eine Tabelle eingefügt wurden, wird die Kette gestartet.
  • Mail Event: Xcontrol kann auf spezifische eMails angesetzt werden und dann dessen Inhalt weiterverarbeiten.

Execute PlugIn

Sie möchten einen Prozess oder eine Applikation auf einem beliebigen Computer starten, dann ist dieser PlugIn Ihr Freund J Es ist in der Lage dies zu tun, so dass der Prozess auch wirklich auf dem Ziel Computer läuft. Natürlich muss der entsprechende Computer netzwerk-technisch erreichbar sein.

Reporting PlugIn

Sie möchten einen Prozess oder eine Applikation auf einem beliebigen Computer starten, dann ist dieser PlugIn Ihr Freund 🙂 Es ist in der Lage dies zu tun, so dass der Prozess auch wirklich auf dem Ziel Computer läuft. Natürlich muss der entsprechende Computer netzwerk-technisch erreichbar sein.

File Handling PlugIn

Dieses PlugIn dient zum Importieren und Exportieren von verschiedensten Dateiformaten.

Z.B. importieren Sie eine Excel Datei und geben diese danach als PDF Datei wieder aus.

Powershell PlugIn

Für das Ausführen von Powershell Scripts, wahlweise lokal oder remote.

Data Mapping PlugIn (ab Version 3.5)

Damit können grafisch Daten gemappt werden, also z.B. aus verschiedenen Tabellen summen berechnen und in eine einzige Tabelle zusammenführen.

Datenmapping wird der Prozess genannt, der Datenelemente zwischen unterschiedlichen Datenmodellen abbildet. Datenmapping wird als ein erster Schritt für verschiedene Aufgaben der Informationsintegration benötigt.

IoT PlugIn (ab Version 3.5)

Dieses Plugin eröffnet Zugang zu der Welt der Dinge.

Also eine Jobkette könnte z.B. so aussehen:

  1. Auf eine Datei warten
  2. Datei in den SQL Server einlesen
  3. Daten mappen (Zeitintensiver Job)
  4. Kaffee Maschine starten (IoT)
  5. Report erstellen
  6. Report versenden

Technisch gesehen verwenden wir den Raspberry Pi um sowohl mit dem Gerät, als auch mit Xcontrol zu kommunizieren. Pro IoT Gerät muss eine kleine Schnittstelle erstellt werden.

Hier eine kleine IoT Erklärung (Quelle Wikipedia):

„Der Begriff Internet der Dinge (IdD) (auch: „Allesnetz“ englisch Internet of Things, Kurzform: IoT) beschreibt, dass der (Personal) Computer in der digitalen Welt zunehmend von „intelligenten Gegenständen“ bis hin zu „KI“, künstlicher Intelligenz ergänzt wird. Statt – wie derzeit – selbst Gegenstand der menschlichen Aufmerksamkeit zu sein, soll das „Internet der Dinge“ den Menschen bei seinen Tätigkeiten unmerklich unterstützen. Die immer kleineren eingebetteten Computer sollen Menschen unterstützen, ohne abzulenken oder überhaupt aufzufallen. So werden z. B. miniaturisierte Computer, sogenannte Wearables, mit unterschiedlichen Sensoren direkt in Kleidungsstücke eingearbeitet.“

Das Ziel des Internets der Dinge ist es, die Informationslücke zwischen der realen und virtuellen Welt zu minimieren.Diese Informationslücke besteht, weil in der realen Welt Dinge tatsächlich einen bestimmten Zustand haben (z. B. „Luft ist kalt“, „Druckertoner ist voll“), dieser Zustand im Internet jedoch nicht bekannt ist. Ziel ist also, dass viele reale Dinge die eigenen Zustandsinformationen für die Weiterverarbeitung im Netzwerk zur Verfügung stellen. Solche Zustandsinformationen können Informationen über die aktuelle Nutzung, über Alterung, aber auch über besondere Umweltbedingungen an dem Ort des Teilnehmers sein. Solche Informationen können sowohl zur Verbesserung der Nutzbarkeit des Teilnehmers selbst ausgewertet werden (Früherkennung von Wartung oder Austausch etc.), als auch zur Verbesserung der Situation des umgebenden Bereiches (so kann z. B. die Reduktion des Energieaufwandes zur Heizung oder Kühlung an eine Vielzahl von Informationen im ganzen Raum gebunden werden, und so besser wirken als in der Regelinstallation, die mit einem einzelnen Sensor [an häufig ungeeigneter Stelle montiert] auskommen muss). In einem weiteren Schritt können digitale Services als Teil des IoT die Parametrisierung von Geräten so erleichtern und verbessern, dass sie auch dort geschieht, wo sie heute aus Kostengründen nicht stattfindet.“

WebCrawler PlugIn (ab Version 3.5)

Das Ziel dieses PlugIn ist es gezielt Daten, möglichst in Echtzeit, aus dem Internet zu lesen. Z.B. aufgrund des Wunsches nach eines Wettbewerbs Vorteils oder einfach um die Daten zu erhalten und weiterverarbeiten zu können.

Web SEO PlugIn (ab Version 3.5)

Hier geht es darum bei Google ein besseres Ranking zu erhalten. Dies kann z.B. durch das generieren von Traffic erreicht werden.

Details dazu zu einem späteren Zeitpunkt.

ORACLE PlugIns (ab Version 4.0)

Anbindung von ORACLE Datenbanken. Ähnliches PlugIn Set wie beim SQL Server.

Herkunft und Geschichte

Siehe unter JobControl