Frage Wie viel Netzwerk-Overhead (und Dateisperrprobleme) kann ich für 25-50 Benutzer in einer Visual FoxPro 9-ERP-DB über SMB / CIFS erwarten?


Alternativer Fragentitel: Wie kann ich übersetzen "Diese Software gibt mir die Gänsehaut" zu einem Geschäftsfall an das obere Management, um es nicht zu kaufen?

Ich bin die IT-Abteilung für ein kleines Unternehmen, das mehrere Jahre anhaltendes Wachstum erfahren hat. Wir begannen mit QuickBooks, wechselten zu einem anderen Buchhaltungssystem und sind jetzt auf dem Markt für mittelständische ERP-Systeme, die ein wenig umfassender und anpassbarer sind. Wir evaluieren derzeit ein ERP-System, das in Visual FoxPro 9 geschrieben ist, und ich habe ein schlechtes Gefühl dabei, aber ich kann nicht genau aufzählen, warum das so ist.

Es besteht aus mehreren Modulen, dem Backoffice-Modul und einem Web-Modul, an denen wir interessiert sind. Das Backoffice-Modul enthält die üblichen ERP-Bestell- / Fulfillment- / Versand- / Abrechnungsfunktionen. Das Webmodul wird von derselben FoxPro-Datenbank über das IIS-Icing auf eine .NET-Komponente gesteuert, die die Datenbank von einem anderen Rechner aus über einen UNC-Pfad öffnet. Ich weiß auch nichts davon, aber das ist jetzt ein anderes Thema.

Meine Sorge ist, dass das System "installiert" wird, indem Sie Folgendes tun:

1.  Create a top-level folder on a server.  
2.  share that folder with appropriate users and groups as \\server\erp
3.  unzip the .exe and dlls and \data folder in the shared folder
4.  map \\server\erp to a drive on client computers
5.  create a shortcut to the \\server\data\erp.exe on client desktops.
6.  double click on shortcut!  You’re ERPing! (after some other minimal setup)

Die .exe-Datei verwendet den Zugriff auf Dateien im Unterverzeichnis \\ server \ data, um wie üblich Formulare usw. zu füllen.

Ich bin besorgt, dass gleichzeitige Benutzer (25 oder mehr), die auf eine .exe zugreifen, die auf Dateien über das Netzwerkdateisystem (cifs) zugreift, um Datenbankfunktionen auszuführen, ... verdächtig erscheint. Jedes andere System, das ich gesehen habe, verwendet eine separate Datenbank-Engine, entweder eine selbstgewachsene (was schlimm genug ist) oder so etwas wie SQL Server, Oracle, sogar PostGreSQL oder sogar MySQL, um den Datenzugriff zu handhaben, aber dieser ist einfach Eine .exe-Datei in einem freigegebenen Ordner wird direkt von diesem freigegebenen Ordner auf dem Desktop jedes Clients ausgeführt. Es scheint, dass dies ineffizient oder zumindest unelegant ist und dass es zu viel Netzwerkverkehr führen würde. Die EXE-Datei ist ca. 10 MB groß und befindet sich auf dem Server. Sie öffnet .dbf-Dateien in einem angrenzenden \ data-Verzeichnis. Der Verkäufer fragte, ob wir ein Gigabit-Netzwerk hätten (was wir machen) und es schien ihm sehr wichtig zu sein ... jetzt kann ich verstehen, warum er gefragt hat.

Ich habe keinen tiefen Entwicklungshintergrund, aber es scheint mir, dass Sie eine separate Datenbank-Engine haben sollten, die mit Clients entweder über Named Pipe oder TCP / IP-Socket kommuniziert, oder zumindest eine Art binäres Netzwerkprotokoll, wenn nichts anderes. Die Verwendung der NetBIOS-Freigabe (Sie geben UNC-Pfade als Eigenschaften in die Datenbank ein) scheint einfach falsch zu sein, da Sie nicht in Dateisperrprobleme geraten würden, wenn z. zwei Benutzer möchten denselben Kunden in A / R öffnen? Bin ich nur übervorsichtig? Ist das wirklich Standard, wie der Verkäufer sagt? Ich habe keine großen Erfahrungen in den größeren Buchhaltungssystemen wie diesem. Unser aktuelles Paket verwendet ein Client-Server-Modell mit einer DB-Engine, die Dateien verarbeitet, und dann sprechen die Benutzer, die die Software auf ihren Maschinen ausführen, über das Netzwerk mit ihm. Bin ich falsch zu denken, dass etwas, das angeblich fortgeschrittener ist, eine ähnliche Schnittstelle haben wird?


4
2017-09-19 11:50


Ursprung


Erinnert mich daran, dass Leute mit Access DBs so etwas gemacht haben. Schrecklich. Das verursachte Probleme mit 5 Benutzern, geschweige denn 25. - JamesRyan


Antworten:


Was Sie beschrieben haben, würde mich aus mehreren Gründen sicherlich beunruhigen:

  • Die Tatsache, dass der Vertreter auf Gigabit-Networking für solch eine kleine App bestand. Es kann sich herausstellen, dass es keine praktischen Auswirkungen auf Ihr Netzwerk hat, aber es würde mich ernsthaft über das Design der Anwendung beunruhigen. Ein 50-Benutzer-ERP-System sollte eine 10Mbit-Leitung, geschweige denn eine Gigabit-Leitung, nicht stören.

  • Die Sicherheitsauswirkungen des Installationsprozesses wären für mich ein Deal-Breaker. Dies ist ein System, das Kundeninformationen (und wahrscheinlich Kundenzahlungen) enthält. Benutzer starten eine EXE-Anweisung als "shortuct", was bedeutet, dass 25-50 Instanzen dieser EXE unter den Anmeldeinformationen des Benutzers auf ihren Workstations ausgeführt werden. Diese Prozesse greifen direkt auf die freigegebenen Datenbankdateien zu und schreiben diese gleicher Anteil. Das bedeutet, dass jeder Benutzer von Anfang an direkten Lese- / Schreibzugriff auf Ihre gesamte Datenbank haben muss. Das ist vom Standpunkt der technischen und der Sicherheitskonformität her schrecklich.

Persönlich würde ich eine Meile von dieser App allein auf dem letzten Punkt laufen. Ich bin sicher, dass Leute mit mehr Vertrautheit in Compliance-Bereichen (oder mit FoxPro) weiter kommentieren können.


6
2017-09-19 12:25



+1 auf der Grundlage des Punktes re: Sicherheit. Ich würde auch dazu hinzufügen: Sie können diese Anwendung niemals über ein WAN / VPN ausführen, ohne eine Remotedesktoptechnologie (Terminaldienste usw.) zu verwenden. Dieses Ding ist definitiv nicht Client / Server, wenn es um seine Datenbank geht. Eklig. Ich würde Lauf von dieser Sache. (Softwarefirmen, die ihre "alte" "Investition" in Mist-Datenbank-Technologien "einsetzen", machen mich krank und wir sollten alle mit unseren Brieftaschen abstimmen, damit sie aufhören oder, alternativ, einfach aus dem Geschäft aussteigen.) - Evan Anderson
Danke für deine Einsichten. Ich habe sie aufgeschrieben und zum Management gebracht, und ich bin mir ziemlich sicher, dass wir diesen Weg nicht gehen werden, wenn sich nicht etwas drastisch ändert. Sie waren sehr empfänglich für die Sicherheitsargumente. - atroon
Visual FoxPro und dergleichen sind möglicherweise nicht trendy und können mit zukünftigen Versionen von Windows zunehmend unzuverlässig werden. Es ist jedoch keine "Mist-Datenbank-Technologie", denn wenn es wäre, wäre es nicht immer noch da und würde nicht helfen, Tausende von Unternehmen mit wenig oder gar keiner Wartung zu betreiben. Ja, in einer idealen Welt wäre alles auf SQL Server oder was auch immer, und niemand wird neue Anwendungen mit alter Technologie starten, aber die Tatsache bleibt, dass die Dinge, die in COBOL und VFP geschrieben sind, und der ganze Rest die Arbeit Tag für Tag erledigen Warum sollten sich die Kunden um ihrer Meinung willen ändern? - Alan B


Kenne ich schon.

Ich gebe zu, VFP9 scheint etwas veraltet, aber es ist eine bewährte Technologie.

Ob Sie es glauben oder nicht: VFP9 ist in einem solchen Setup sehr robust. Es ist überhaupt nicht wie msaccess. Ich hatte anfangs auch meine Zweifel, aber in der Praxis gibt es überhaupt kein Problem.

Zusätzlicher Bonus: Sie können sogar einfache dateibasierte Backups der Datenbanken erstellen, solange kein Benutzer die Anwendung geöffnet hat. Das ist schön, wenn Sie keinen 24/7-Shop betreiben.

Sie benötigen jedoch ein schnelles (mindestens 100 MB) LAN zwischen Clients und Servern. (Und um Gottes Willen, legen Sie eine 1G NIC in den Server.) Die EXE lokal oder auf dem Server ist nicht wirklich wichtig, entweder wird es gut funktionieren.

Wie andere gesagt haben: Für nicht-lokale Benutzer benötigen Sie eine WTS-Einrichtung. Empfehlung ist, das auf einer separaten Maschine und nicht auf dem VFP9-Server selbst zu tun. (Natürlich können beide Maschinen bei Hyper-V oder VMWare VMs auf derselben physischen Box sein.)

Bitte beachten Sie, dass die WTS-Benutzer möglicherweise eine beträchtliche Menge an RAM pro Benutzer benötigen. Es hängt ein wenig von der Effizienz der DB-Abfragen und den Anforderungen der Anwendung ab.

Von dem, was ich gesehen habe, sind 100 bis 200 MB Arbeitssätze für vfp9-Apps ziemlich normal, von denen etwa die Hälfte im physischen RAM gepinnt wäre. Meiner Erfahrung nach sind 20 bis 30 Benutzer auf einem WBS-Server mit 4 GB Arbeitsspeicher möglich, wenn sie nicht viel mehr in der WTS-Sitzung ausführen müssen. Abhängig von Ihren Anwendungsanforderungen kann Ihre Laufleistung variieren.


3
2017-10-06 10:44





Ich habe viel Erfahrung mit einem Visual FoxPro 9 ERP-Paket, das mehr oder weniger auf die gleiche Weise funktioniert - Dateifreigabe auf einem Server, mehrere Clients mit lokal EXEs und Supportdateien, die auf die SMB-Freigabe zugreifen. Der Datensatz für jede Firma im ERP ist Hunderte von DBF-Dateien.

In Bezug auf die Leistung sehen wir keine Probleme - wir haben viele Kunden, die 30 oder mehr Clients von einem normalen Windows-Server ausführen und auf DBF-Dateien zugreifen, die Millionen von Zeilen und über 1 GB haben können. Wenn das Indexieren und Sperren vom ERP korrekt implementiert wird, sind diese Zahlen alle in Ordnung.

Ja, es gibt Sicherheitsprobleme mit einer Dateifreigabe voller DBF-Dateien. Ich nehme an, es hängt von der Art des Kunden ab, den unser ERP verkauft, aber in mehr als 15 Jahren und mit Tausenden von Websites die Zahl, die ich persönlich weiß, dass wir wegen dieser Einrichtung insgesamt 20 oder so verloren haben. Es ist auch möglich, dieses Problem mithilfe der Terminaldienste zu umgehen.

Sie sind absolut richtig, auch dass Sie Terminaldienste möglicherweise über ein VPN verwenden müssen, um es remote auszuführen.

Wenn Sie das fragliche ERP-System verwenden und Windows 7-Computer und Server 2008 verwenden, stellen Sie sicher, dass sich diese auf SP1 befinden, da in SMB ein Fehler aufgetreten ist, der die Indexdateien beschädigt hat.


1
2017-10-06 08:48