Zur├╝ck zum Blog

Schnittstellengeschnetzeltes

­čôů  

Schnittstelle zu Mesonic

Die letzte Wochen stand im Zeichen der ersten Schnittstelle. Es geht um die Anbindung an das ERP-System Mesonic (http://www.mesonic.at/), das von zwei Referenzkunden und von einigen potentiellen Kunden eingesetzt wird, da Ivellio-Vellin auch Vertriebspartner von Mesonic ist. Diese Schnittstelle besteht im Kern aus einer Schnittstelle zu einem Microsoft SQL Server 2013.

Obwohl wir die Nomenklatur der Datenbankstruktur kennen - die Benennung von Tabellen und Spalten ist nicht sprechend - ben├Âtigen wir zun├Ąchst einen komfortablen Datenbankbrowser, den wir uns als getrennte Hobo Applikation generieren. Dies gelingt innerhalb zweier Tage, womit wir sicher sind, dass wir die Schnittstelle zur Datenbank implementieren k├Ânnen, in der wir nur auf etwa 10 Tabellen zugreifen werden. Die generierte Applikation greift auf alle Spalten aller Tabellen des ERP zu und zeigt dabei keine Performance Probleme.

Die Testsysteme auf den Rechnern der Entwickler befindet sich zwei SSH-Tunnel und damit drei Network-Hops vom Datenbankserver entfernt, die Daten├╝bertragung ist dennoch ausreichend schnell, die Latenz gering genug. Produktivstysteme werden sich stets nur einen Hop vom Datenbankserver des ERP-Systems entfernt befinden, damit wird die Latenz grob gedrittelt.

Wir haben kleine Probleme mit der automatischen Generierung der Datenbankmigrationen von Hobo erlebt, konnten diese aber ohne fremde Hilfe durch lesen des Quellcodes beheben. Hier kam uns die Open Source Lizenz und Natur von Hobo zu Gute.

Es geht nun in Folge an die Implementierung der Schnittstelle in die Applikation. Zielsetzung ist, die Schnittstelle so modular zu gestalten, dass sie nicht nur ein- und ausgeschaltet werden kann, sondern, dass sie nicht mal installiert werden muss, sollte ein anderes ERP-System eingebunden werden. Dazu gibt es in Ruby on Rails das Konzept der Engines, das sind im Prinzip eigenst├Ąndige Applikationen, die sich in eine Applikation einklinken lassen. Leichte Sorge bereitet uns, dass Hobo zwar selbst eine Engine darstellt, die Einbindung weiterer Engines aber in der Dokumentation aber nicht erw├Ąhnt wird.

In weiterer Folge sind diese Engines in sogenannte Gems verpackbar, vielleicht am besten als Softwarepaket beschreibbar. Diese Gems lassen sich dann einfach etwa auf den Plattformen Rubygems und Github publizieren und auf Servern installieren. Dabei werden Versionsabh├Ąngigkeiten ├╝berpr├╝ft.

Wir machen also jetzt den Sprung von der Entwicklung einer relativ gro├čen, aber doch einzelnen Applikation, in die einer Software- und Servicearchitektur aus Anwendung und Gems. Unsere Gems werden aber nicht als eigenst├Ąndige Services lauff├Ąhig sein, dieser Aufwand rechnet sich f├╝r uns nicht.

Cobrowsing

Auch an anderen Stellen geht die Entwicklung weiter, das Cobrowsing erfolgt nun f├╝r den Benutzer weniger aufdringlich, in dem eine Animation den Darstellungsbereich fl├╝ssig ein- und ausblendet.

Wir arbeiten daran, die Beratungssituation f├╝r den Benutzer angenehmer zu machen: Zum Beispiel mit einem Photo des Beraters. Bei der Implementierung sind wir auf einen Bug in der Codegenerierung Hobos f├╝r Sidebars gesto├čen, den wir eingemeldet haben. Wir m├╝ssen nicht auf eine Behebung warten, da wir mit dem Debugging auch sofort einen Workaround gefunden haben, der vermutlich in die Codebasis von Hobo einflie├čen wird.

Rabatte

Bestellpositionen haben nun einen Positionsrabatt, der aus dem Rabatt der Angebotsposition ermittelt wird. F├╝r Komplettangebote gibt es auch einen Kopfrabatt. Zu kl├Ąren ist hier noch das Verhalten bei Kopie in eine Bestellung.

Der Kunde kann nun die Lieferart vor der Zahlungsart ausw├Ąhlen. - Sie steht bei ihm im Vordergrund. Die Versandspesen wurden nicht immer korrekt ermittelt, dieses Fehlverhalten ist nun behoben.

Die Pflege seiner Adressen wunde f├╝r den Kunden nun deutlich vereinfacht, er hat eine ├╝bersichtliche Darstellung aller seiner Adressen in seinem Benutzerprofil.

Upselling

Im Warenkorb besteht nun f├╝r den Kunden eine einfache M├Âglichkeit des Upsellings: Jeder Artikel, f├╝r den passendes Zubeh├Âr bestellt werden kann, hat im Warenkorb einen Button, ├╝ber den dieses Zubeh├Âr ohne Seitenwechsel eingeblendet und auch unmittelbar bestellt werden kann.

Komponenten

Wir haben im Zuge dieser Besprechung einen Blick auf die aktuelle Architektur von Mercator geworfen. Die Anzahl der verwendeten Technologien, Sprachen, Bibliotheken und Services hat uns selbst ├╝berrascht.

Architekturdiagramm

Um den ├ťberblick zu behalten, die Darstellung in Form eines Diagramms:


Mercator Architektur


Zur├╝ck zum Blog