AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Sind zwei Webdispatcher in einer Exe möglich?
Thema durchsuchen
Ansicht
Themen-Optionen

Sind zwei Webdispatcher in einer Exe möglich?

Ein Thema von michaelg · begonnen am 10. Jun 2020 · letzter Beitrag vom 11. Jun 2020
Antwort Antwort
michaelg

Registriert seit: 20. Apr 2008
87 Beiträge
 
#1

Sind zwei Webdispatcher in einer Exe möglich?

  Alt 10. Jun 2020, 12:19
Moin zusammen,

eine Frage zu technischer Machbarkeit und evtl. auch ein wenig philosophisch.

ich habe eine Windows-Exe, mit der ich DS-Rest-Anfragen über einen bestimmten Port annehme. Der Webdispatcher wird natürlich ganz normal beim Programmstart initialisiert.

Nun möchte ich in derselben Exe einen weiteren Port freigeben, der einen weiteren Server bedient, der innerhalb derselben Exe gleichzeitig laufen kann. Geht es, zwei Server mit verschiedenen Ports in einer Exe gleichzeitig laufen zu lassen? Das Problem scheint, dass nur ein Webdispatcher initialisiert werden kann.

Jetzt könnt Ihr sagen, nimm den vorhanden Server und erweitere ihn um entsprechende neue Funktionen. Ich würde es aber lieber konsequent getrennt haben von dem bereits vorhandenen, da er ganze andere Dinge tun soll.

Ihr könntet ebenso sagen, mach eine neue Exe als neuen Server. Das wäre aber auch nicht mein Wunsch, da in der Exe viel Programmlogik ist, die ich für den zweiten Server nutzen möchte, und die sich in Teilen schlecht kapseln lässt.

Nun sitze ich hier und überlege, was schlau wäre und was möglich ist. Was meint Ihr?


Viele Grüße
Michael
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Sind zwei Webdispatcher in einer Exe möglich?

  Alt 10. Jun 2020, 12:21
Im Prinzip ja, wenn jeder einen anderen Port benutzt,

aber es kann natürlich sein, dass die Implementation bissl blöd ist und dort mit globalen Objekten/Registrierungsstellen gearbeitet wird.
$2B or not $2B

Geändert von himitsu (10. Jun 2020 um 12:23 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Sind zwei Webdispatcher in einer Exe möglich?

  Alt 10. Jun 2020, 12:57
Wenn es ganz andere Dinge sind, was spricht gegen eine zweite Exe.

Ich denke es ist von Emba nicht angedacht hier wirklich zwei Dispatcher zu nutzen, ich würde jetzt auch nicht versuchen das zwangshaft zu patchen, sondern eine zweite
Exe für dies "ganz anderen Dinge" nutzen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Sind zwei Webdispatcher in einer Exe möglich?

  Alt 10. Jun 2020, 13:58
Jupp, zwei EXEn sind einfacher, wenn es wirklich ein Bug Feature ist.


z.B. Bei TService sind die Hilfe und Codevorlagen so, dass es nur einmal zu gehen scheint,
aber eigentlich ist es möglich mehrere unterschiedliche Services/Dienste oder den Gleichen mehrfach (mit unterschiedlichen Namen) in einer EXE zu haben
und hier stimmt die Hilfe vieleicht mal.
$2B or not $2B

Geändert von himitsu (10. Jun 2020 um 15:29 Uhr)
  Mit Zitat antworten Zitat
michaelg

Registriert seit: 20. Apr 2008
87 Beiträge
 
#5

AW: Sind zwei Webdispatcher in einer Exe möglich?

  Alt 10. Jun 2020, 15:22
Erstmal danke für Eure Antworten.

Naja, die Sache mit den zwei Exe(n) ist insofern doof, dass es die meisten Funktionen in der ersten Exe bereits gibt und seit langer Zeit superstabil funktionieren.

Das hiesse, wenn ich den zweiten Server in die EINE Exe reinbekomme, könnte ich die Funktionen, die nun von aussen angeschubst werden sollen, einfach nur für den Server deklarieren und dann die erprobten internen Funktionen aufrufen. Diese internen Funktionen zu kapseln, um sie von zwei verschiedenen Exe(n) nutzen zu können, ist sehr schwierig.

Ihr meint also wie ich, dass kaum eine Möglichkeit besteht, den zweiten Server in der selben Exe zu registrieren. Schade, dann muss ich mir irgendwas anderes ausdenken.

Oder ich muss es tatsächlich in den vorhandenen Server einbauen, hilft ja nix.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Sind zwei Webdispatcher in einer Exe möglich?

  Alt 10. Jun 2020, 15:32
Probiere es doch erstmal aus, bevor du irgendwas bastelst?!
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#7

AW: Sind zwei Webdispatcher in einer Exe möglich?

  Alt 10. Jun 2020, 21:11
..."Naja, die Sache mit den zwei Exe(n) ist insofern doof, dass es die meisten Funktionen in der ersten Exe bereits gibt und seit langer Zeit superstabil funktionieren."... super, denn:

- lagere als "Step 1" doch mal all deine derzeit superstabilen Funktionen in eine eigene DLL aus
- als Step 2 teste & vergleiche deine nun verkleinerte "BestandsServerEXE" mit deiner neuen eingebundenen DLL
- als Step 3 erstelle&teste eine neue "ZusatzServerEXE" mit neuem ServerPort und binde auch da deine DLL ein

Bei der Variante hättest du alles selbst unter Kontrolle und musst nicht an die Basics von fremden Dingen(wie den WebDispatcher) heran.
Und praktisch hättest du doch auch bei der angedachten "DoppelServerEXE" ganz sicher den gemeinsam genutzten Code in separaten Units in die EXE eingelinkt.
Da ist das Auslagern dieser SharedCode-Units in eine DLL sicher nur eine kleine Fingerübung
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#8

AW: Sind zwei Webdispatcher in einer Exe möglich?

  Alt 10. Jun 2020, 21:26
Neben der Möglichkeit mehrerer Server in einer Anwendung auf verschiedenen Ports zu betreiben ist es netzwerktechnisch auch möglich, die Server verschiedenen IP Adresse zuzuordnen. Die IP Adressen sind dann Aliase für die normale IP Adresse des Netzwerkadapters.

Vielleicht lässt sich der zweite Webdispatcher ja so parallel ansprechen.
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
michaelg

Registriert seit: 20. Apr 2008
87 Beiträge
 
#9

AW: Sind zwei Webdispatcher in einer Exe möglich?

  Alt 11. Jun 2020, 00:27
Die Idee mit der DLL ist zwar ok, aber die Funktionen, von denen ich spreche, sind stark gebunden an die Programmumgebung. Von Benutzerrechten bis zu einer Vielzahl von Umgebungseinstellungen sind da einfach zu viele Dinge zu berücksichtigen, um sie in eine DLL auszugliedern, das lässt sich einfach nicht so kapseln.

Aber mir kam da gerade eine ganz andere Idee. In der DPR wird ja das entsprechende Webmodul zugewiesen:

Zitat:
if WebRequestHandler <> nil then
WebRequestHandler.WebModuleClass := WebModuleClass;
Dann wird das entsprechende Serverfenster zu einem bestimmten Zeitpunkt created, der Server gestartet und los gehts.

Wenn ich an dieser Stelle über einen Startparameter der EXE eine Fallunterscheidung einbaue und dann den anderen Server registriere, müsste ich doch in der Exe entweder den einen oder den anderen Server laufen lassen können. Sorge ich nun noch dafür, dass man die Exe zweimal starten kann (was ich zur Zeit blockiert habe), könnte ich einfach zwei Instanzen der Exe mit verschiedenen Servern laufen lassen.

Es geht ja letztlich nur um das Webmodule, wo ich mich im laufenden Programm festlegen muss. Der Server selbst wird ja erzeugt beim Create des jeweiligen Serverforms. So könnte ich die Server sauber voneinander abgrenzen. Da sie auf unterschiedlichen Ports lauschen, gibt es da auch keine Konflikte.

Aber da komme ich vielleicht in eine andere selbstgemachte Sackgasse. Ich habe mal eingebaut, dass man die EXE sowohl ganz normal mit Fenstern als auch als Dienst starten kann. Wenn ich die EXE als Dienst laufen lasse, kann ich dieselbe Exe zweimal als Dienst registrieren mit verschiedenen Startparametern? Müsste doch auch gehen, oder?
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#10

AW: Sind zwei Webdispatcher in einer Exe möglich?

  Alt 11. Jun 2020, 19:05
Vielleicht könnte man zwei Projekte machen, die die gleichen Units nutzen und den internen Datenaustausch über eine Datenbank gestalten.
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz