FIX/Wt Webclient für FIX-Anwendungen

Allgemeines

FIX/Wt (sprich FIX/Witty) ist ein neues Produkt mit dem es möglich ist, FIX-Anwendungen im Web-Browser zu starten und zu bedienen. Von der Architektur her ersetzt FIX/Wt den FIX/Win Client. FIX/Wt ist dabei sowohl Client als auch Server.

Aus Sicht der FIX-Anwendung ist FIX/Wt - wie auch FIX/Win - ein Client, der sich mit der Anwendung verbindet. Änderungen an der Anwendung sind dazu prinzipiell (eine genaue Erklärung folgt noch) nicht notwendig. Es genügt, die Anwendung mit einer modernen FIX Bibliothek (4.5.0 ab Patchdate 20120901) zu binden. Damit kann die Anwendung sowohl über FIX/Wt, als auch über FIX/Win bedient werden.

Aus Sicht des Browsers ist FIX/Wt ein (WEB-)Server, der die Daten zur Darstellung des Bildschirms liefert und der Daten in Form von Feldwerten, Tastencodes und Mausklicks entgegen nimmt. Dieser WEB-Server kann entweder der in FIX/Wt eingebaute WEB-Server sein oder der Microsoft Internet Information Server mit FIX/Wt als eingebettetes Modul (ISAPI plugin).
Eine Anwendung unter FIX/Wt sieht im Browser genauso aus wie unter FIX/Win und wird auch genauso bedient. Unterschiede können lediglich durch die zur Verfügung stehenden Fonts und vom Browser belegten Tasten entstehen.

 Demo-Auftragserfassung-600

 

Funktionsweise von FIX/Wt

FIX/Wt arbeitet, genau wie FIX/Win, mit virtuellen Bildschirmen. Das bedeutet, dass von FIX ein Characterbildschirm übertragen wird und FIX/Wt (FIX/Win) aus diesen Daten mit Hilfe von Zeichenoperationen wie Linien, Rechtecken und Bitmaps einen graphischen Bildschirm erzeugt und anzeigt. Der Unterschied zwischen FIX/Win und FIX/Wt besteht darin, dass hierfür statt der Funktionen des WIN32-APIs die Funktionen des Toolkits Wt (siehe http://www.webtoolkit.eu/wt) verwendet werden (daher auch der Name FIX/Wt). Dieses Toolkit erzeugt aus den Zeichenanweisungen JavaScript Code, der ein HTML 5 Canvas Element mit grafischen Elementen füllt. Diese Zeichenanweisungen werden vom Browser ausgeführt. Es werden also weder native HTML Elemente wie Tabellen, Text und Felder verwendet, noch wird eine komplette Grafik vom WEB-Server bereitgestellt. Dies macht den Ansatz performant und die Entwicklung von FIX/Wt durch die Ähnlichkeit mit FIX/Win überhaupt erst möglich.

An der Schnittstelle zu FIX hat sich in FIX/Wt nichts geändert. FIX/Wt verwendet somit gegenüber der Anwendung das gleiche Protokoll wie FIX/Win.

 

Funktionsweise von FIX/Win

fixwin-400

 

 

Funktionsweise von FIX/Wt

fixwt-400

 

Einschränkungen von FIX/Wt

FIX/Wt unterstützt nicht alle Features von FIX/Win. Auf einige Dinge wurde in der ersten Version bewusst verzichtet. Andere sind in diesem Umfeld einfach nicht machbar. Für wieder andere steht eine Analyse der Machbarkeit noch aus.

  • Verwendung von ActiveX Controls
  • Copy und Paste von Teilen des Bildschirms
  • Drucken des Bildschirms
  • Umschalten des LookAndFeels zur Laufzeit (Nach einer Umschaltung ist ein Neuaufbau der Verbindung notwendig).
  • Unterstützung des Entwicklermenüs
  • Verschieben von Fenstern
  • Verwendung von verschiedenen Farbvariationen
  • Anzeige eines Logos während des Verbindungsaufbaus

Technische Rahmenbedingungen: Unterstützte Browser

Dadurch, dass mit dem HTML5-Canvas ein relativ modernes Element verwendet wird, werden nicht alle Browser unterstützt. Folgende Browser können zusammen mit FIX/Wt eingesetzt werden.

  • Internet Explorer ab Version 9
  • Firefox ab Version 13
  • Chrome ab Version 20
  • Safari auf iPad

Andere Versionen funktionieren möglicherweise, werden jedoch von NSI nicht getestet. Für kommende Versionen von FIX/Wt werden immer nur die neusten Browserversionen getestet.

Einschränkungen durch die Umgebung

Neben den Einschränkungen durch FIX/Wt ergeben sich Einschränkungen aus der Tatsache, dass das Frontend jetzt nicht mehr auf der lokalen Maschine gestartet wird, sondern über WEB-Server und Browser verteilt ist. Diese Einschränkungen hängen stark von der Anwendung ab und können sehr vielfältig sein. An dieser Stelle soll deshalb nur ein Beispiel angeführt werden:

Wenn eine FIX-Anwendung Daten für Excel erzeugt, diese über eine Netzwerkfreigabe bereitstellt und dann über FIX/Win Excel startet, dann wird das auf diese Weise in FIX/Wt nicht mehr funktionieren. Es ist zwar noch möglich, über FIX/Wt Excel zu starten, jedoch wird der Benutzer, der die Anwendung über den Browser startet, nichts davon mitbekommen, da er ja typischerweise an einem ganz anderen Rechner sitzt. Es ist also notwendig, diesen Start von Excel auf den Rechner zu verschieben, auf dem der Browser gestartet wurde. Hier steht jedoch die Netzwerkfreigabe nicht unbedingt zur Verfügung.

Auf diesen Umstand - also dass das Frontend in einer ganz anderen Umgebung läuft - bezieht sich die Aussage, dass an der Anwendung prinzipiell keine Änderungen notwendig sind. Wenn eine Anwendung derartige Verfahren benutzt, muss sie, wenn sie von FIX/Wt bedient wird, anders reagieren. Im einfachsten Fall besteht diese Reaktion aus einer Fehlermeldung, dass dieses Feature nicht zur Verfügung steht.

Eine weitere Einschränkung, die sich aus der Umgebung ergibt liegt in der Bedienung. FIX/Wt oder auch Web-Anwendungen allgemein sind nicht für eine Schnellerfassung geeignet. Dies äußert sich zum einen darin, das Tastendrücke nicht gepuffert werden und bei schnellem Tippen für die Anwendung verloren gehen. Sachbearbeiter, die die Anwendung blind bedienen, werden mit FIX/Wt Probleme haben. Zum anderen belegt der Browser einige Tasten fest und es besteht keine Möglichkeit, diese Tasten für die Anwendung zu nutzen. So besteht beispielsweise keine Möglichkeit, die Taste Strg-F4 - die ein Fenster schließt - abzufangen und an die Anwendung zu senden. Für diese Funktionen sind dann andere Tasten zu definieren.

Das Problem Tastaturbedienung tritt in verstärktem Maße bei mobilen Geräten (iPad) auf. Hier fehlen oft viele oder alle Funktionstasten, so dass die Möglichkeit, die Anwendung über Iconbox und Buttons zu bedienen, implementiert werden muss.

Umstellung auf FIX/Wt

FIX/Wt wird in der ersten Version als ZIP-Archive geliefert, das durch einfaches Entpacken installiert wird. Im Gegensatz zu FIX/Win wird das Konzept des Gruppenverzeichnisses nicht mehr unterstützt. Damit sind alle Anpassungen direkt in dem ausgelieferten Stand vorzunehmen. Bei einer neuen Version sind dann im Wesentlichen die Binärdateien auszutauschen.
Folgende Dinge sind anzupassen oder können angepasst werden:

Programmtabelle

Das Format der Programmtabelle hat sich gegenüber dem von FIX/Win nicht geändert. Damit kann eine bestehende Programmtabelle einfach in das FIX/Wt Verzeichnis kopiert werden. Die Angabe des Gruppenverzeichnisses wird ignoriert. Alle Dateien werden im Hauptverzeichnis gesucht.

Tastaturtabelle

Auch die Tastaturtabelle kann von FIX/Win kopiert werden oder auf die gleiche Art und Weise wie bei FIX/Win angepasst werden.

Iconboxdefinition

Auch der Aufbau dieser Datei ist weitestgehend gleich geblieben. Allerdings müssen für die Icons png-Dateien statt bmp-Dateien verwendet werden. Die betrifft sowohl die Angabe in der Iconboxdefinition, als auch die Datei selbst. Die Dateien liegen dabei nicht mehr in LookAndFeel/Iconbox-LAF sondern in LookAndFeel/IconboxWt-LAF.

LookAndFeel

Zusammen mit FIX/Wt wird das LookAndFeel des FIX-Windemos ausgeliefert. Wenn andere Grafikzeichen verwendet werden sollen, dann können diese in gepackter Form von FIX/Win kopiert werden. Dabei ist es allerdings notwendig, die Dateien vom bmp-Format in das png-Format zu konvertieren. Auch hier hat sich, wie bei der Iconbox, der Name des Verzeichnisses geändert: FixWt-LAF statt Fixwin-LAF.

Für eine spätere Version ist die Umstellung von bmpack geplant, so dass dieses Tool auch die Dateien für FIX/Wt im richtigen Verzeichnis/Format erzeugt.

Neben diesen Dateien sind weitere hinzu gekommen, die angepasst werden können, um das LookAndFeel zu ändern. So ist es beispielsweise möglich, durch Änderung einer CSS-Datei das Aussehen von Iconbox und Statuszeile anzupassen.

Benutzerbibliothek

In diesem Teil steckt der Hauptanteil der Anpassungen.

Alle Funktionen, die in FIX/Win Elemente zeichnen, müssen vom WIN32-API auf das API des WT-Toolkits angepasst werden.

Weiterhin können hier Anpassungen vorgenommen werden, die sich aus der geänderten Umgebung ergeben, wie in dem obigen Beispiel mit Excel erläutert.

Eine Besonderheit von FIX/Wt ist bei der Umstellung auf jeden Fall zu berücksichtigen. Die Bibliothek muss multisessionfähig werden. Wenn die Benutzerbibliothek von FIX/Win geladen wird, dann lädt jede Programminstanz von FIX/Win ihre eigene Bibliothek. Im Falle von FIX/Wt existiert jedoch nur ein Prozess für alle Benutzer und die Bibliothek wird nur einmal geladen. Deshalb ist es notwendig, dass für jeden Start einer Session (eine Verbindung vom Browser zum WEB-Server) ein eigener Satz an Variablen bereitgestellt wird. FIX/Wt bietet entsprechende Funktionen an, die den Entwickler bei dieser Aufgabe unterstützen.

Aufwand

Wie bereits oben erläutert hängen die notwendigen Arbeiten zur Umstellung stark von der Struktur der Anwendung und denen im Web-Umfeld benötigten Teilen der Anwendung ab. Deshalb ist es nahezu unmöglich, den Aufwand genau zu beziffern. Wir freuen uns deshalb über eine Kontaktaufnahme, um dies im Einzelfall mit den FIX-C Anwendern zu klären.

FIX/WT Handbuch für Anwendungsentwickler  Dateigröße 408.83 KB Download