[Client/Server] DCOM vs TCP

Pagina: 1
Acties:

  • Zoetjuh
  • Registratie: Oktober 2001
  • Laatst online: 10-01-2024
Hoi allen,

Momenteel zit ik met een dilemma. Ik ben bezig met het schrijven van een applicatie die ook vanaf andere PC's aangeroepen/beheerd moet kunnen worden. Nu is het de bedoeling dat het beheer via een website gaat lopen. Deze website draait niet op het zelfde systeem als mijn applicatie.

Het geheel gaat draaien op Windows 2003 Servers.

Nu zijn er in mijn ogen twee systemen die ik kan gebruiken om mijn applicatie aan te roepen/te beheren;

middels DCOM
- COM-server in mijn applicatie
- evt. COM-client in een DLL
De website (PHP) spreekt de server dan aan via:
- het aanspreken van functies binnen de COM-client DLL; óf
- direct uitvoeren van COM-functies vanuit PHP

middels TCP
- TCP-server in mijn applicatie
- evt. TCP-client in een DLL
De website (PHP) spreekt de server dan aan via:
- het aanspreken van functies binnen de TCP-client DLL; óf
- direct uitvoeren van TCP-functies vanuit PHP

Op zich zou ik beide manieren kunnen programmeren, maar ik zit te twijfelen wat nu "de juiste manier" is om dit te doen. Mijn gevoel zegt dat TCP/IP eenvoudig/stabieler is, maar anderzijds weet ik dat COM hier weer voor bedoeld is (en het programmeren van een COM-server binnen mijn applicatie lukt me ook wel).

Ik ben dan ook zeer benieuwd naar jullie mening en eigen ervaring.

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

DCOM is vaak lastig te configureren als het op rechten aan komt en via internet is het helemaal lastig omdat je dan ook nog met de firewall te maken hebt. Het voordeel van COM zou zijn dat je niet zelf een protocol hoeft te verzinnen zoals bij TCP en je zou er vrij simpel ook andere clients en servers voor kunnen maken in andere programmeer talen.

We adore chaos because we like to restore order - M.C. Escher


  • Brahiewahiewa
  • Registratie: Oktober 2001
  • Laatst online: 30-09-2022

Brahiewahiewa

boelkloedig

Zoetjuh schreef op maandag 16 mei 2005 @ 12:35:... Mijn gevoel zegt dat TCP/IP eenvoudig/stabieler is, maar anderzijds weet ik dat COM hier weer voor bedoeld is ...
TCP/IP is je transport laag. COM gaat ook gewoon over TCP/IP.
Je vraag komt er dus feitelijk op neer of jij zelf een uitgeklede versie van COM gaat ontwikkelen,
of dat je gebruik gaat maken van datgene wat Microsoft voor jou ontwikkeld heeft.

De stabiliteit van je zelfgeschreven COM surrogaat zou'k overigens niet overschatten.
Althans, mijn ervaring is dat de meeste van die oplossingen niet stabiel zijn en ook onveilig.
Otoh, heb ik ook erg veel rampzalige COM-implementaties gezien

QnJhaGlld2FoaWV3YQ==


  • Zoetjuh
  • Registratie: Oktober 2001
  • Laatst online: 10-01-2024
Goed, ik zal iets meer vertellen over het geen dat ik al geproggd heb.

Het gaat om een e-mail server voor Windows welke in een load-balanced omgeving moet kunnen draaien. Voorheen was ik van plan om het kunnen toevoegen van mailaccounts via een website te laten verlopen die inderdaad gebruik zou gaan maken van DCOM.

Ik programmeer overigens in Borland C++ Builder. Voor de TCP Server/client componenten,maak gebruik van Indy 9.0.

Verder zit alles wel pluis en draaid de server (met alle SMTP/POP3 functies) ondertussen al twee weken met veel succes. Echter, momenteel zet ik alle accounts en aliasses nog handmatig een database. Het is dus de bedoeling dat admin-users van een domein dit voortaan zelf moeten kunnen.

Mijn ervaringen met het opzetten van een protocol, met authentication, voor dit soort zaken is dat zoiets prima en eenvoudig moet lukken.

@ LordLarry
Dat met die rechten is juist een van de redenen dat ik twijfel aan DCOM. De machines draaien in een netwerk waar ze gewoon met elkaar kunnen babbelen; dus firewalling ben ik niet zo erg bang voor.

Een ander nadeel (mogelijk meer een gevoelskwestie) lijkt me de afhankelijkheid van het bekend moeten zijn van de DCOM functies op de client. Ik wil eigenlijk op de client niets hoeven te installeren/configureren. Maargoed, als DCOM "beter" is, zal ik dat wel gewoon doen utieraard

@ Brahiewahiewa
Hoe veilig/stabiel is DCOM tov een eigen geschreven implementatie... dat is inderdaad zo'n punt waar ik mee zit. Omdat de mailserver gewoon perfect werkt, heb ik veel vertrouwen in een eigen implementatie. DCOM heb ik nog geen echt overtuigend gevoel mij en misschien is dat ook wel m'n "probleem".

[ Voor 22% gewijzigd door Zoetjuh op 16-05-2005 16:34 . Reden: ingekort / functies weggehaald ]


  • Zoetjuh
  • Registratie: Oktober 2001
  • Laatst online: 10-01-2024
Ik ben toch benieuwd of iemand toch nog specifieke pro's/con's heeft wat betreft de keuze..
Ik zit zelf toch nog enigzins in dilemma over de keuze.

Voor mijn gevoel:

DCOM:
----
+ het is een standaard
+ "het hoort zo"
- Complexer
- Gevoeliger (rechten / registrysettings etc)
- Kan geef "sessievariabelen" opslaan
- Geen/Weinig ervaring mee

Eigen protocol over TCP:
----
+ Veel ervaring mee
+ Eenvoudig te implementeren
+ Onafhankelijk van externe factoren (evt. op firewall na)
+ Kan met sessies werken (en authenticated state)
- Mogelijke protocol fouten (ook al denk ik dat de Indy TCP-Server/client dit eigenlijk voorkomt doordat ze, als ik het goed heb, gebruik maken van een RFC-voorgestelde commando-structuur)

Vandaar dat mijn persoonlijke voorkeur uit gaat naar TCP; maarja.. wat is *echte* wijsheid?

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-04 22:08
DCOM een standaard noemen, en TCP niet :D

"Het hoort zo" lijkt me ook overtrokken. Ik ken COM+ nog uit de tijd dat het OLE2 heette. In wezen is het hack op hack gestapeld.

Daar staat tegenover dat je sneller functionaliteit toevoegt als je eenmaal de eerste code hebt draaien.

Heb je overigens SOAP/HTTP overwogen?

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein

Pagina: 1