Geschichten aus der Krypta der Entwickler der Plattform für ERP. Einleitung

Guten Tag!

In dieser Artikelserie möchten wir über Ultima Businessware sprechen - unsere Plattform zum Aufbau von ERP-Systemen.
Dies ist der erste einleitende Artikel, in dem wir über die Entwicklung (d. H. Die Umgebung und die Interaktion mit ihr) der Plattform sprechen und die wichtigsten und interessantesten Merkmale der Plattform auflisten.
In zukünftigen Beiträgen planen wir, über die Details des Geräts und die Implementierung derselben Funktionen zu sprechen. Außerdem werden wir auf dem Weg die Organisation des Entwicklungsprozesses mit uns teilen.

Evolution


Jetzt ist es in Mode, nach einer solchen Überschrift einen Link zu Wikipedia zu setzen, aber wir Nonkonformisten werden dies nicht tun. Eigentlich werden wir hier über das Umfeld sprechen, in dem die Plattform entstanden und sich entwickelt hat.

Also zum Thema Umwelt - es begann im Jahr 2004 auf einem Server mit 4 GB Arbeitsspeicher und 4 Kernen. Und um die Menge kreisten 150 Benutzer, die wirklich Waren verkaufen mussten. Und zu kaufen. Und speichern und liefern und vieles mehr. Und ich muss sagen, diese Benutzer haben sich in Knöpfe geschlagen, ohne vom Mittagessen abgelenkt zu werden. Im Allgemeinen am Arbeitsplatz geraucht. Insgesamt hatten wir Tausende von Transaktionen pro Stunde. Und es war nicht so beängstigend wie das Blockieren - diese Massen von Nutzern und sogar Kunden auf der Website jagten Waren.

Abgesehen davon gelang es dem Unternehmen jedoch, schnell zu wachsen, was mit einer unglaublich schnellen Änderung der Geschäftsprozesse und damit der Anwendung selbst einherging.

In einer solchen Umgebung erschien die erste Version unserer Plattform - viele Benutzer, eine hohe Transaktionslast, ein Wettlauf um Ressourcen, Geschäftsprozesse, bei denen Sperren nicht aufgehoben werden können, ständige Änderungen und Sie können sich nicht irren. Die einzige Möglichkeit besteht darin, die Produktivität zu steigern, die Sperrzeit zu verkürzen, die Benutzeroberfläche zu optimieren und die Entwicklung zu vereinfachen, um mit den Änderungen Schritt zu halten.

Zur historischen Wahrheit muss gesagt werden, dass die erste Version der Plattform in vielen Unternehmen existiert und noch in Betrieb ist und wahrscheinlich weiterhin verwendet wird, da die Veröffentlichung der Plattform, die 2013 stattfand, nicht mit der vorherigen kompatibel ist. Wir werden nicht über die Vorgängerversion sprechen, da diese mit bestehenden Kunden auskommt. Aus statistischen Gründen geben Sie einfach ein paar Zahlen an:
  • Es beschäftigt ungefähr 4.000 Benutzer;
  • Täglich besuchen rund 200.000 Kunden die Website.


Plattform


Die dreistufige Anwendung, deren Anwendungsserver komplett von Grund auf neu entwickelt wurde, nutzt das Zyan-Projekt für die Kommunikation . Der Hauptentwickler der Plattform ist einer ihrer Mitwirkenden. Das allgemeine Schema der Anwendung ist im folgenden Schema dargestellt:

Anwendungsdiagramm

Wie Sie sehen, wird Oracle Database als DBMS verwendet. Derzeit behalten wir die Unterstützung von 11gR2 bei. Mit der Veröffentlichung der neuen Version von ODA und ExaData planen wir jedoch, 12c abzulehnen. Für leicht geladene Lösungen kann das System mit Oracle Compatibility auf EnterpriseDB ausgeführt werden .

Eine solche starre Bindung, die für andere Automatisierungslösungen nicht charakteristisch ist, ist darauf zurückzuführen, dass die Leistung optimiert werden muss. Mit den Funktionen von Oracle Database konnten wir Warteschlangen in der Datenbank implementieren (wir werden im Artikel über den Druckserver ein wenig darauf eingehen) und viele interne Prozesse optimieren.

Anwendungsserver- und Clientanwendung - vollständig verwaltete Anwendungen sind in C # 5.0 geschrieben, d. H. benutze LINQ und async / await (wir werden versuchen, unsere Erfahrungen mit letzterem in den folgenden Artikeln zu teilen). Tatsächlich wird die gesamte Geschäftslogik in Form von Handlern für verschiedene Ereignisse verschiedener Geschäftsobjekte implementiert. Wenn Sie mit 1C vertraut sind, werden Sie sie erkennen - dies sind Verzeichnisse, Dokumente und ein gewisses Analogon des Registers, das wir das Ergebnis nennen.

Tatsächlich kann es viele Clientanwendungen geben, aber die Plattform enthält eine, in die die Entwicklungs- und Verwaltungsumgebung eingebaut ist. Dies ist eine grafische Benutzeroberfläche zur Beschreibung der Struktur und der Beziehungen von Geschäftsobjekten sowie ein Code-Editor für Skripts. Skripte in C #, einem Analogon von IntelliSense im Editor, sind vorhanden.

Der Anwendungsserver ist jeweils mit der Ausführung der Geschäftslogik, der Konvertierung relationaler Daten in Systemobjekte und umgekehrt, der Ereignisverwaltung usw. beauftragt.

Zur Veranschaulichung sollte das folgende Diagramm angegeben werden:

Ultima Businessware-Interaktionsdiagramm

Und schließlich ist der bereits dreimal erwähnte Druckserver in gewisser Weise für das Versenden der entsprechenden Druckformulare an die Drucker verantwortlich. Ermöglicht das "Virtualisieren" des Zugriffs auf Drucker, das Organisieren der garantierten Zustellung, das Entfernen des Wartens auf den Zugriff auf den Drucker (und das Verringern der Sperrzeit) und vieles mehr. In einem separaten Artikel werden wir Ihnen mehr über sein Gerät erzählen.

Gut und weiter über das, was wir erzählen werden:
  • Transaktionsmanagement. Wie es war und wie es wurde. Probleme bei der Verwaltung von Transaktionen mit mehreren Threads.
  • Änderungsmanagement. Wie wir die Versionskontrolle haben. Warum wird es benötigt und was erlaubt.
  • REST / SOAP-Unterstützung. Wie haben wir ihre Unterstützung organisiert?
  • Big Brother und Daten ändern Geschichte. Warum kann Oracle Flashback Archive noch nicht verwendet werden?


Anstelle einer Schlussfolgerung


Wir haben versucht, ein wenig über unser System zu sprechen und Sie zu interessieren. In den folgenden Artikeln gehen wir etwas tiefer in die Details ein. Dies im ersten Artikel zu tun, ist ein direkter Weg, um das Gehirn zu überhitzen.

Darüber hinaus werden wir versuchen, in unserem Blog über alle interessanten aufkommenden Probleme zu sprechen, die kein Know-how oder Geschäftsgeheimnis darstellen.

Jetzt auch beliebt: