AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Nachrichten für mehr als 10.000 Rechner im Netzwerk - Welche Technik verwenden?
Thema durchsuchen
Ansicht
Themen-Optionen

Nachrichten für mehr als 10.000 Rechner im Netzwerk - Welche Technik verwenden?

Ein Thema von Piro · begonnen am 7. Mär 2016 · letzter Beitrag vom 12. Mär 2016
Antwort Antwort
Seite 2 von 2     12   
mjustin

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

AW: Nachrichten für mehr als 10.000 Rechner im Netzwerk - Welche Technik verwenden?

  Alt 7. Mär 2016, 18:44
MSMQ wurde bereits erwähnt. Es gibt als Alternative auch viele Free Open Source Message Broker. Zwei, die sehr verbreitet im produktiven Einsatz sind, können über diverse Client-Bibliotheken auch von Delphi/Free Pascal aus verwendet werden:

* Apache ActiveMQ (Java-basiert, Clients in C/C++, C#, PHP, Pascal, Perl, Python, ...) unter http://activemq.apache.org/
* RabbitMQ (Erlang-basiert, Clients in Java, C#, Ruby, Python, PHP, JavaScript, Pascal, ...) - http://www.rabbitmq.com/
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
381 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Nachrichten für mehr als 10.000 Rechner im Netzwerk - Welche Technik verwenden?

  Alt 7. Mär 2016, 19:34
@ Mavarik
... wohl wahr - wie immer !

@ mjustin
Free Open Source Message Broker ? Indianer und andere Hasen ???
Was haben die mit der Entwicklung eines sauberen und schlanken Programmes zu tun ?

Eher NIX !?

Damit wird nur massiv auf/eingesetzt und anderen das Denken überlassen, die/wo/da/so dann doch mit nennenswerter/überdimensionierter Performance NUR mit MEGA-EURO für Hardware, welche die schlecht gemachte Software wieder rausreissen muss ....

Aktuell finde ich es sehr erstaunlich, hier noch mit 9000/700 am start zu sein. Nicht der Brüller - manche anderen würden sich freuen.
  Mit Zitat antworten Zitat
mjustin

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

AW: Nachrichten für mehr als 10.000 Rechner im Netzwerk - Welche Technik verwenden?

  Alt 7. Mär 2016, 20:14
@ mjustin
Free Open Source Message Broker ? Indianer und andere Hasen ???
Was haben die mit der Entwicklung eines sauberen und schlanken Programmes zu tun ?

Eher NIX !?
Alle Message Broker (auch MSMQ) haben den Vorteil, dass sie eine bestimmte Aufgabe übernehmen, die dann nicht mehr in jedem einzelnen Programm eingebaut sein muss. Das führt auch zu kleineren, schlankeren Programmen, weil nur noch wenige Kilobyte für das Protokoll und den Netzwerkstack benötigt werden. Für Routing, und bei Bedarf auch Persistenz und vieles mehr, ist der Broker zuständig (der auch mit guter Leistung in einer kleinen virtuellen Maschine betrieben werden kann).

Damit wird nur massiv auf/eingesetzt und anderen das Denken überlassen
Wer die Lust und Zeit dafür hat, darf sich natürlich alle Server selbst bauen - Datenbanken, Mailserver, Webserver, ... (Ohne Pioniergeist und Investitionen kein Fortschritt). In der Praxis gibt es aber immer auch Rahmenbedingungen und Interessenslagen, die die Auswahl einer bestehenden Lösungen begünstigen machen, wenn damit ein gesetztes Ziel erreicht werden kann (auch wenn es etwas mehr kostet als eine selbst "gebraute" Lösung). Türklinken müssen nicht vergoldet sein.
Michael Justin
  Mit Zitat antworten Zitat
mjustin

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

AW: Nachrichten für mehr als 10.000 Rechner im Netzwerk - Welche Technik verwenden?

  Alt 7. Mär 2016, 20:45
Derzeit sind es um die 2000 Rechner, die ein Datenbankverbindung aufbauen.
Noch eine Alternative: falls die Datenbank Events unterstützt (InterBase, Firebird z.B.), kann man diese im Client 'abonnieren'.

Beispiele, Vor- und Nachteile habe ich in einem Blog Artikel (Englisch) beschrieben unter https://mikejustin.wordpress.com/201...ed-middleware/

Eventuell auch interessant ist: Why is a database rarely the best tool for a queue based problem
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#15

AW: Nachrichten für mehr als 10.000 Rechner im Netzwerk - Welche Technik verwenden?

  Alt 8. Mär 2016, 07:54
Moin,

Vielen vielen Dank für die zahlreichen Antworten. Sorry fürs späte Melden. Ich saniere gerade unser Haus.

Meine Idee:
In unserem Firmennetzwerk, welches weltweit ist, soll eine kleine Anwendung auf jedem Windows Computer bei Logon via Group Policy gestartet werden.
Anhand des Active Directory SiteName aus der Registry melden sich die Computer an dem Nachrichten Server an.
Mit einem Management Programm kann ich dann eine Nachricht in die Datenbank schreiben mit dem Zusatz, welche Standorte auf Basis des SiteName eine Nachricht bekommen sollen.
Eine kleines Programm kontrolliert dann alle Minute, ob eine neue Nachricht vorhanden ist und sendet diese dann an die relevanten Computer.

Dadurch muss ich folgende Programme programmieren:
1. Management PGM ( ist schon fertig)
2. Nachrichtenserver, der alle Client Verbindungen annimmt und die DB auf neue Nachrichten überprüft
3. Client PGM, welches auf jedem Computer gestartet wird, welches sich am Server anmeldet

Ich würde gerne alles mit Delphi umsetzen, wenn es machbar ist. Außer es wäre mit anderen Tools sinnvoller.

Danke im Voraus.
Sven
  Mit Zitat antworten Zitat
madas

Registriert seit: 9. Aug 2007
207 Beiträge
 
#16

AW: Nachrichten für mehr als 10.000 Rechner im Netzwerk - Welche Technik verwenden?

  Alt 8. Mär 2016, 10:08
Ich würde gerne alles mit Delphi umsetzen, wenn es machbar ist. Außer es wäre mit anderen Tools sinnvoller.
Vielleicht kommt Dir diese Antwort hier bekannt vor:

Zitat:
Vielen vielen Dank an alle.

SignalR wird meine Lösung.
http://www.mycsharp.de/wbb2/thread.php?threadid=116512

Warum nun doch wieder Delphi, wenn SignalR wirklich eine sehr gute Lösung darstellen würde?
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#17

AW: Nachrichten für mehr als 10.000 Rechner im Netzwerk - Welche Technik verwenden?

  Alt 8. Mär 2016, 20:43
Ja das mit SignalR ist doch etwas zeitaufwendiger als gedacht. Da muss ich mich mit der Materie von ganz vorne auseinandersetzen.
C# und GUI und so weiter, sind für mich totales Neuland. Leider habe ich die Zeit nicht und Delphi ist für mich vertrauter.

Wenn ich die Zeit hätte, wäre es vielleicht anders.

Deshalb die Idee, ob Delphi irgendwelche Techniken hat, w.z.B. SignalR, um mein Vorhaben mit Delphi Mitteln umzusetzen.

Wie gesagt, habe ich schon eine fertige Management Anwendung in der ich alle Rechner habe. Mit dieser kann ich die zu verschickende Nachricht in die DB speichern.
Jetzt fehlt mir nur noch der Server und die Client Anwendung mit mein Vorhaben mit den richten Mitteln, umzusetzen.

Gruß,
Sven
  Mit Zitat antworten Zitat
mjustin

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

AW: Nachrichten für mehr als 10.000 Rechner im Netzwerk - Welche Technik verwenden?

  Alt 9. Mär 2016, 08:50
Deshalb die Idee, ob Delphi irgendwelche Techniken hat, w.z.B. SignalR, um mein Vorhaben mit Delphi Mitteln umzusetzen.
Eine kommerzielle WebSocket Client und Server Implementierung gibt es unter http://websockets.esegece.com/

Code:
    Fully functional multithreaded WebSocket server according to RFC 6455.
    Supports Firemonkey (Windows, MacOS, iOS and Android).
    Supports Lazarus / FreePascal.
    Supports CBuilder.
    Supports C# .NET through sgcWebSockets.dll
    Supports Chrome, Firefox, Safari, Opera and Internet Explorer (including iPhone, iPad and iPod)
    Binary and Full Unicode Messages Support
    Message compression using PerMessage_Deflate extension.
    Flash FallBack for Web Browsers without native WebSockets (like Internet Explorer 6-9).
    Multiple Threads Support
    Server component providing WebSocket and HTTP connections through the same port.
    Client WebSocket supports connections through Socket.IO Servers.
    Client WebSocket supports connections through HTTP Proxy Servers.
    WatchDog and HeartBeat built-in support.
    Events Available: OnConnect, OnDisconnect, OnMessage, OnError
    Built-in sub-protocols: JSON-RPC 2.0(Transactional Messages, PubSub, RPC, Queues, QoS and more), Datasets, Binary Files, WebRTC and WAMP.
    Built-in Javascript libraries to support browser clients.
    Easy to setup
    Javascript Events for a full control
    Async Events using Ajax
    SSL/TLS support on Server and Client components
Ob das über 10000 Connections schafft sollte der Author sicher beantworten können. Ich würde aber zur Sicherheit immer auch eigene Lastsimulationen durchführen.

Indy-basierte Lösungen sind allerdings nicht für so hohe Verbindungszahlen geeignet wenn die Connections alle gleichzeitig geöffnet sein müssen. (nachzulesen z.B. unter http://codeverge.com/embarcadero.del...read-c/1072348).

Wenn es 20000 Clients sein sollen und der Server in Delphi implementiert werden muss, könnte man

* mehrere Server laufen lassen (um die Last zu verteilen)
* die Verbindung nur kurz geöffnet lassen und serverseitig die wartenden Informationen in einem Cache halten, damit der Client sehr schnell wieder die Verbindung trennen kann *)
* UDP verwenden um Clients über neue Nachrichten zu informieren

*) aber das Betriebssystem wird dann den Socket immer noch für längere Zeit offen halten. Wenn sich viele Clients immer wieder verbinden und trennen, kann das Betriebssystem dann nach einiger Zeit keine neuen Sockets mehr öffnen (das ist einer der Gründe warum z.B. HTTP 1.1 die Verbindung geöffnet hält - 'HTTP/1.1 makes persistent connections the default.' - http://www8.org/w8-papers/5c-protocols/key/key.html )
Michael Justin
habarisoft.com

Geändert von mjustin ( 9. Mär 2016 um 09:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#19

AW: Nachrichten für mehr als 10.000 Rechner im Netzwerk - Welche Technik verwenden?

  Alt 12. Mär 2016, 20:47
Moin,
habe mich jetzt doch mit SignalR und C# auseinander gesetzt. Ist echt cool.

Werde SignalR verwenden.

Vielen Dank für die gute Unterstützung und die Anregungen.

Mit freundlichen Grüßen
Sven
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 21:41 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