situatie
We zijn momenteel bezig met de ontwikkeling van een stuk software (in Delphi 7) dat uiteindelijk op nogal wat verschillende plaatsen moet gaan draaien. Citrix, 'normale' netwerken, netwerken met Linux-servers, enzovoorts. Uiteindelijk is het natuurlijk de bedoeling dat het geheel zo onderhoudsvrij mogelijk gaat draaien. Dit heeft er ook mee te maken dat de kans aanwezig is dat de opdrachtgever het in het buitenland gaat neerzetten.
De applicatie wordt straks opgebouwd uit verschillende modules. Er wordt gebruik gemaakt van DLL's en diverse exes. De vraag in dit topic gaat dan ook over communicatie tussen twee applicaties. IPC dus
enne... zelf al iets gedaan?
Nou, ik ben in ieder geval op zoek geweest naar de nodige info over verschillende manieren om tussen apps te communiceren. Zo ben ik uitgekomen op sockets, shared mem en (named) pipes. Daar heb ik ook al het een en ander over gelezen. Ik zal eerst een aantal zaken opnoemen die ik, waarschijnlijk door duidelijke redenen, niet wil gaan gebruiken:
sockets
Lijkt me goed werken, maar het heeft een nadeeltje: het werkt via TCP/IP. Mogelijk is dit helemaal geen probleem, maar ik heb laatst een PC in de knoop gezien omdat een programmeur perse een netwerkkaart nodig had in de PC omdat er gebruik werd gemaakt van sockets
Waarschijnlijk heb ik er daardoor een slecht (en misschien verkeerd) beeld van.
(named) pipes
Binnen de Delphi help weinig info over kunnen vinden. Op internet wordt duidelijk dat er veel componenten voor zijn. Third party componenten werk ik liever niet mee, dus dan maar zelf ...
Op de MSDN Library is er een hele berg over (named) pipes te vinden. Helaas is daar, zoals ik het lees, ook te vinden dat pipes niet gebruikt kunnen worden op win9x en ME. En eigenlijk willen we die ook graag ondersteunen. (Dat willen we helemaal niet, maar dat moeten we
)
shared mem
Ook hier vond ik een aantal componenten. Verder kan aan mij liggen, maar shared mem klinkt mij niet als ideale oplossing in de oren. Dat zal wel persoonlijk zijn, maar dat gevoel krijg ik erbij.
wat wil je nou eigenlijk?!!?!
Ik zou het tof vinden om eens wat ervaringsdeskundigen hierover te horen.
Ik kan me nu wel blind in een oplossing storten, maar dat lijkt me niet de meest ideale aanpak. Vandaar dat ik me een aantal zaken afvraag:
Waarom zou je hier reageren? Eigenlijk heel simpel: om iemand een duwtje de goede richting in te geven. En natuurlijk niet te vergeten: mijn eeuwige* dank.
Dus: mocht je me van info kunnen voorzien, I'm all eyes....
* de term "eeuwig" dient hier met een stevige korrel zout geïnterpreteerd te worden
We zijn momenteel bezig met de ontwikkeling van een stuk software (in Delphi 7) dat uiteindelijk op nogal wat verschillende plaatsen moet gaan draaien. Citrix, 'normale' netwerken, netwerken met Linux-servers, enzovoorts. Uiteindelijk is het natuurlijk de bedoeling dat het geheel zo onderhoudsvrij mogelijk gaat draaien. Dit heeft er ook mee te maken dat de kans aanwezig is dat de opdrachtgever het in het buitenland gaat neerzetten.
De applicatie wordt straks opgebouwd uit verschillende modules. Er wordt gebruik gemaakt van DLL's en diverse exes. De vraag in dit topic gaat dan ook over communicatie tussen twee applicaties. IPC dus
enne... zelf al iets gedaan?
Nou, ik ben in ieder geval op zoek geweest naar de nodige info over verschillende manieren om tussen apps te communiceren. Zo ben ik uitgekomen op sockets, shared mem en (named) pipes. Daar heb ik ook al het een en ander over gelezen. Ik zal eerst een aantal zaken opnoemen die ik, waarschijnlijk door duidelijke redenen, niet wil gaan gebruiken:
- register
- bestanden
- tabel
sockets
Lijkt me goed werken, maar het heeft een nadeeltje: het werkt via TCP/IP. Mogelijk is dit helemaal geen probleem, maar ik heb laatst een PC in de knoop gezien omdat een programmeur perse een netwerkkaart nodig had in de PC omdat er gebruik werd gemaakt van sockets
Waarschijnlijk heb ik er daardoor een slecht (en misschien verkeerd) beeld van.
(named) pipes
Binnen de Delphi help weinig info over kunnen vinden. Op internet wordt duidelijk dat er veel componenten voor zijn. Third party componenten werk ik liever niet mee, dus dan maar zelf ...
Op de MSDN Library is er een hele berg over (named) pipes te vinden. Helaas is daar, zoals ik het lees, ook te vinden dat pipes niet gebruikt kunnen worden op win9x en ME. En eigenlijk willen we die ook graag ondersteunen. (Dat willen we helemaal niet, maar dat moeten we
shared mem
Ook hier vond ik een aantal componenten. Verder kan aan mij liggen, maar shared mem klinkt mij niet als ideale oplossing in de oren. Dat zal wel persoonlijk zijn, maar dat gevoel krijg ik erbij.
wat wil je nou eigenlijk?!!?!
Ik zou het tof vinden om eens wat ervaringsdeskundigen hierover te horen.
- Wat zijn jullie ervaringen met de verschillende opties
- Zijn er eventueel nog andere opties beschikbaar
- Wat is, gekeken naar de verschillende doel-netwerken, de verstandigste keuze
- Hebben jullie tips voor info
Waarom zou je hier reageren? Eigenlijk heel simpel: om iemand een duwtje de goede richting in te geven. En natuurlijk niet te vergeten: mijn eeuwige* dank.
Dus: mocht je me van info kunnen voorzien, I'm all eyes....
* de term "eeuwig" dient hier met een stevige korrel zout geïnterpreteerd te worden