Announcement

Collapse
No announcement yet.

Socketconnection

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Socketconnection

    Hallo Ihr alle zusammen.

    Ich scheine einfach nicht intelligent genug für DCOM zu sein !!

    Ich habe ein ExternesDatenmodul mit verschiedenen Daten Providern, die ich auch alle per Borland Socket Server und Borland Socket Connection mit den Clientdatasets verbinden kann. Also soweit so gut. Funktioniert übrigens auch, wenn Client und Server nicht auf dem selben Rechner liegen. Ich bekomme Daten vom Server und kann diese zur Ansicht bringen.

    Nun baue ich innerhalb des Clientsources mit

    aSrv := CoPDKSERVER.Create;

    eine weitere Verbindung zum Server auf, damit ich auf die Funktionen zugreifen kann. Aber in dem Augenblick, in dem der Befehl ausgeführt wird, startet der Client den Server noch einmal lokal auf dem Rechner auf dem der Client läuft und braucht somit auch hier eine Verbindung zum Backend. Wie kann ich das umgehen, denn der Server ist ja bereits auf dem anderen Rechner gestartet und hat dort auch seine Verbindung zur DB hergestellt.

    Delphi 5 Enterprise
    MS SQL 2000
    WIndows 2000
    Inprocess Server

    Dankeschön in vorraus

    Hendrik

  • #2
    Hallo,

    der Borland Socket Server hat <b>nichts</b> mit DCOM zu tun sondern ist nur für den "Notfall" vorgesehen, dass ein Firewall zwischen Client und Server nicht so konfiguriert werden kann, dass er zwei Ports zusätzlich zu Port 80 durchlässt. Im Fall des Zugriffs über den Borland Socket Server (BSS) passiert folgendes: <br>
    - Client baut eine TCP/IP-Verbindung zum auf dem Server als Dienst laufenden BSS auf <br>
    - BSS-Dienst des Servers startet <b>lokal</b> eine Instanz des COM-Objekts <br>
    - BSS "simuliert" eine Remote-Verbindung, indem er die Aufrufe via TCP/IP-Datenpakete transportiert. Alle COM-Zugriffe laufen auf dem Server nur <b>lokal</b> ab.

    Wenn nun der Client über DCOM eine Verbindung anfordert, <b>muss</b> der Server eine <b>neue</b> Instanz zurückliefern.

    Wenn der Client über DCOM auf den Server zugreifen kann, ist die "Krücke" BSS nicht notwendig - denn der BSS ist nur ein schlechter Kompromiss, die viele DCOM-Fähigkeiten gar nicht unterstützt und damit nur im Notfall (siehe Firewall) genutzt werden sollte. Genauer gesagt, sollte der BSS in der heutigen Zeit niemals genutzt werden, denn mit dem SOAP-Protokoll (Web Services) steht ein zuverlässiger funktionierender Nachfolger bereit

    Comment


    • #3
      Dankeschön Herr Kosch für die schnelle Antwort.

      Raten Sie denn nicht davon ab SOAP zu verwenden ??
      Ich dachte ich hätte in einem Kommentar von Ihnen gelesen, daß Sie im Moment noch nicht empfehlen SOAP zu nutzen.

      Ich habe im Moment noch DELPHI 5. Halten Sie es für sinnvoll DELPHI 7 zu kaufen oder ist es besser auf DELPHI.net zu warten ?

      Danke

      Hendri

      Comment


      • #4
        Hallo,

        in einem LAN bzw. WAN, in dem mindestens 2 Ports frei sind, ist DCOM immer noch die erste Wahl. Dies gilt auch für .NET-Anwendungen.

        SOAP kommt immer dann ins Spiel, wenn die komplette Kommunikation ausschließlich über den Port 80 laufen darf - denn dieser Port ist wohl in jedem Firmennetzwerk trotz Firewall verfügbar.

        SOAP steht auch für Delphi 5 Professional zur Verfügung - Microsoft stellt dazu kostenfrei die Erweiterung <i>Microsoft SOAP Toolkit</i> zur Verfügung. Nur die Borland-Implementierung für einen Web Services ist zur Zeit nicht so fehlerfrei, wie das wünschenswert wäre - wobei Delphi 6.02 in diesem Punkt "besser" ist als Delphi 7.

        Mit .NET (die Sprache spielt dabei keine Rolle) sind Web Services (SOAP) vollständig in das Framework integriert. Somit wird das Entwickeln von Web Services im Vergleich zu Delphi 7 "kinderleicht", da es überhaupt keine Vorarbeiten gibt, sondern eine Methode nur über ein Attribut als Web Service veröffentlicht wird

        Comment


        • #5
          Dankeschön für die schnelle Hilfe

          Hendri

          Comment

          Working...
          X