Mám problém, který určitě řešila už spousta lidí přede mnou, tak si rád nechám poradit. Mám Windows server s přidělenou IP a rád bych na něm provozoval několik serverových aplikací napsaných v Delphi, které by reagovaly na portu TCP 80.
V ideálním případě by to bylo tak, aby request na mojeadresa.cz/algoritmus1/NejakeParametry odchytával spuštěný program Algoritmus1.exe, a request na mojeadresa.cz/algoritmus2/NejakeParametry odchytával Algoritmus2.exe.
Napadá mě pár způsobů, jak to udělat a každý je špatně:
1) zkompilovat oba algoritmy do jednoho exáče, takže mají společné rozhraní, které pak dotazy roztřídí, něco jako OdesliZpet(Algoritmus1.Zpracuj(NejakeParametry)); problém pak ale je, že při změně jednoho programu budu muset celou tu věc překompilovávat, navíc programy spolu prakticky nesouvisí, takže by to bylo takové dost špinavé řešení.
2) Totéž, akorát programy zpracovat jako DLL, takže byto bylo aspoň trochu fyzicky oddělené.
3) udělám nějaký InputOutput prográmek, který bude odchytávat dotazy a následně je distribuovat jednotlivým programům buď přes konzoli nebo přes lokální síť na jiných portech, nebo přes Windows zprávy nebo schránku... tady se mi zase nelíbí ten overhead;
Tak nějak doufám, že se najde nějaké standardní řešení, o kterém nevím. Představoval bych si nějakou utilitu, která třeba poslouchá na portu 80 a když vidí, že adresa obsahuje /algoritmus1, tak podle nějakých předem definovanýchj pravidel přepošle zprávu na jiném portu, na kterém si ji už odchytne aplikace Algoritmus1.exe.
Hezký víkend vespolek!
Jiří