AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Daten von Anwendung 1 nach Anwendung 2 "beamen"
Thema durchsuchen
Ansicht
Themen-Optionen

Daten von Anwendung 1 nach Anwendung 2 "beamen"

Ein Thema von moelski · begonnen am 14. Okt 2008 · letzter Beitrag vom 14. Okt 2008
Antwort Antwort
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

Daten von Anwendung 1 nach Anwendung 2 "beamen"

  Alt 14. Okt 2008, 06:41
Moin !

Wir haben ja eine Anwendung die serielle Daten von Ladegeräten in (Lade- / Entlade-) Kurven umsetzt. Allerdings kommen vermehrt Anfragen über Geräteeinbindungen und mehrere Geräte gleichzeitig abfragen.
Im Prinzip auch eine gute Idee, aber wir wollen unsere Roadmap nicht über den Haufen werfen ...

Nun bietet unsere Anwendung schon seit langem ein recht flexibeles Importformat. Und wenn wir nun dem User die Möglichkeit geben würden, seine Daten selber abzugreifen und ein bisschen "vorkonvertiert" an unsere Anwendung zu senden, dann könnte man damit 90% aller Useranfragen erschlagen.

Nun stellt sich aber folgende Frage: Was ist eine geeignete Methode Daten von einer Anwendung zur anderen zu schaufeln. Das ganze soll aber nicht als Dateiimport passieren wo ein Datenblock eingelesen und verarbeitet wird. Vielmehr sollen die Daten "On the fly" angenommen werden. Will heissen:
Externe Anwendung zeichnet ein Telegramm auf -> Konvertiert die Daten passend für unsere Anwendung -> Sendet sie an unsere Anwendung -> Unsere Anwendung nimmt die Daten an und wertet sie aus. Dann das nächste Telegramm usw. usw.

Kurzum, wir brauchen etwas zur Prozesskommunikation. Die Frage ist nur was ist am sinnvollsten.

Mir fallen so ausm Steh ein paar Methoden ein die man nutzen könnte:
* TCP / IP - über eine Socketverbindung (wäre sicher sehr universell einsetzbar)
* Pipes
* Filewatcher (Datei zum Datenaustausch benutzen)

Wichtig wäre nur, das die Fremdanwendung nicht auf Delphi beschränkt ist. Denn wenn ein User sich sein eigenes Proggi schreiben will kann man nciht davoin ausgehen das er Delphi kann ...

Könnt ihr mir ein paar Tips geben was man für diese Aufgabe am sinnvollsten nehmen kann?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Daten von Anwendung 1 nach Anwendung 2 "beamen"

  Alt 14. Okt 2008, 06:49
Lokal ginge das am Einfachsten/Schnellsten mit WM_COPYDATA.
Über PC-Grenzen hinweg würde ich jedoch zu einem Webservice tendieren. COM ginge auch, aber das wird bei DCOM zu einer Verzweiflungstat.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Daten von Anwendung 1 nach Anwendung 2 "beamen"

  Alt 14. Okt 2008, 07:12
Moin !

Zitat:
WM_COPYDATA
Sehr guter Hinweis. Habe schon Beispiele zu allen möglichen Programmiersprachen gefunden. Ich werde das mal testen.

Zitat:
Über PC-Grenzen hinweg würde ich jedoch zu einem Webservice tendieren
Hast du da evtl. einen Ansatz für mich? Einen Webservice habe ich in Delphi noch nicht genutzt.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
mjustin

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

Re: Daten von Anwendung 1 nach Anwendung 2 "beamen"

  Alt 14. Okt 2008, 07:34
Zitat von moelski:
Externe Anwendung zeichnet ein Telegramm auf -> Konvertiert die Daten passend für unsere Anwendung -> Sendet sie an unsere Anwendung -> Unsere Anwendung nimmt die Daten an und wertet sie aus. Dann das nächste Telegramm usw. usw.
...
Wichtig wäre nur, das die Fremdanwendung nicht auf Delphi beschränkt ist. Denn wenn ein User sich sein eigenes Proggi schreiben will kann man nciht davoin ausgehen das er Delphi kann ...
Hi

Wenn man Daten zwischen mehreren Rechnern von Anwendungen in mehreren Programmiersparachen senden will, ist zum Beispiel eine Message Queue wie der Open Source ActiveMQ eine Lösung.

Die Fremdanwendungen senden an eine Queue, die der Message Broker automatisch auch persistent (in einer Datenbank) speichern kann. Eure Anwendung entnimmt die Daten der Reihe nach aus der Queue und verarbeitet sie. Ein Vorteil ist, dass eure Anwendung auch mal ausfallen darf, und die Clients dennoch Daten senden können. Ein weiterer Vorteil ist, dass man die Anwendung in der die Daten abgerufen werden auch mehrfach auf verschiedenen Rechnern starten kann, um die Last auf mehr Hardware zu verteilen - die Message Queue wird die Nachricht dabei immer nur an eine Instanz senden.

Daß ActiveMQ auch Transaktionen unterstützt, für viele Programmiersprachen Clientbibiotheken existieren, und auch sehr einfach in Betrieb zu nehmen ist (auspacken, Batch starten, benutzen), ist vielleicht noch erwähnenswert. Und mit IONA gibt es auch eine kommerziell supportete Version, falls Open Source nur mit Support in Frage kommt.

Neben ActiveMQ gibt es noch andere Produkte wie z.B. xmlBlaster (ebenefalls Open Source, wird z.B. von Astra eingesetzt). Eine Zero-Install-Lösung gibt es auch, Amazon bietet mit dem "Simple Queue Service" eine global erreichbare Message Queue an, mit der sich Clients über das Internet verbinden.

Viele Grüße
Michael
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:20 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