AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Nachrichten an Java-Programm senden

Nachrichten an Java-Programm senden

Ein Thema von AnoBit · begonnen am 5. Apr 2012 · letzter Beitrag vom 26. Mai 2013
Antwort Antwort
AnoBit

Registriert seit: 5. Apr 2012
Ort: Aachen
1 Beiträge
 
Delphi 6 Professional
 
#1

Nachrichten an Java-Programm senden

  Alt 5. Apr 2012, 11:15
Moin moin,

ich suche grade nach einer Möglichkeit aus einem Delphi-Programm heraus Daten an ein Java-Programm zu schicken.
RMI scheint mir nur Java-Intern zu sein.
Auf Netzwerk-Ebene wollte ich mich dabei nicht begeben...

Wie ich gegebenenfalls aus Java an die Windows-Messages komme habe ich bisher auch noch nirgends in Erfahrung bringen können.

Es sollen lediglich zwei Zustandsänderungen (Bool'sche Werte) an das Java-Programm übermittelt werden.

Dazu hatte ich notfalls schon mit dem Gedanken gespielt, Tastenkombinationen an den Java-Teil zu senden und nur darauf zu reagieren.


Leider bin ich nach bisheriger Suche noch nicht viel schlauer.

Was meint Ihr dazu? Irgendwelche Ideen? Hat schon wer ähnliches gemacht?

Grüße,
AnoBit

PS: Die beiden Komponenten sind beide aus eigener Schmiede.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

AW: Nachrichten an Java-Programm senden

  Alt 5. Apr 2012, 11:48
Vielleicht hilft dir ja der Thread.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
mjustin

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

AW: Nachrichten an Java-Programm senden

  Alt 5. Apr 2012, 13:28
JNI und JNA sind zwei Standards, mit denen Java auf native Funktionen zugreifen kann. Beide unterstützen auch Callback-Funktionen. Aus Delphi funktionierte es in meinen Tests zwar, aber ich würde es aus Gründen der Einfachheit mit einer Socketverbindung (z.B. simple HTTP Requests) lösen. Denn man würde bei JNI/JNA zuerst in Delphi (oder C) eine DLL schreiben, diese mit dem anderen Delphi Programm dann ansprechen und zuletzt aus der DLL einen Callback im Java Programm ausführen. Das ist eine umständliche Lösung, verglichen mit einem einfachen Java HTTP Listener Thread und einem Indy IdHTTP.Post (oder.Get) Aufruf.

Noch weniger Aufwand (im wesentlichen pappt man nur eine @WebService Annotation an eine Klasse) wäre es, einen eingebetteten Web Service in Java zu erstellen, das erfordert noch nicht einmal die Enterprise Edition von Java. Der HTTP Endpoint (Server) wird mit einer Zeile Code erzeugt. Delphiseitig kann man dann den WSDL Importer verwenden oder den passenden SOAP Request zu Fuss erstellen.

Ein deutschsprachiges Beispiel ist hier zu finden:

http://www.theserverside.de/webservice-in-java/
Michael Justin
habarisoft.com

Geändert von mjustin ( 5. Apr 2012 um 17:16 Uhr)
  Mit Zitat antworten Zitat
mjustin

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

AW: Nachrichten an Java-Programm senden

  Alt 25. Mai 2013, 14:17
Eine Lösung die einfacher als die (von mir) damals vorgeschlagenen Lösungen mit Web Services und JNA ist: Memory Mapped Files. Diese werden auch von Java unter Windows unterstützt und bieten sehr gute Performance.

Online Quellen:

Als Einstieg http://javarevisited.blogspot.de/201...o-in-java.html :

Zitat:
Possibly main advantage of Memory Mapped IO is performance which is important to build high frequency electronic trading system. Memory Mapped Files are way faster than standard file access via normal IO.
http://stackoverflow.com/questions/1...-files-in-java
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#5

AW: Nachrichten an Java-Programm senden

  Alt 26. Mai 2013, 15:53
Eine Lösung die einfacher als die (von mir) damals vorgeschlagenen Lösungen mit Web Services und JNA ist: Memory Mapped Files.
Um das nicht ganz unkommentiert stehen zu lassen:
MMF (bzw. allgemein geteilter Speicher) sind zur Kommunikation selten eine einfache Lösung. Man muss dabei alles beachten, was es in der nebenläufigen Programmierung so zu beachten gibt. Und dir stehen zwischen Java und nativen Windowsprogrammen noch nicht einmal Semaphoren/Mutexe zur Verfügung.

In diesem Fall (ein Leser, ein Schreiber auf 2 voneinander unabhängigen booleschen Variablen) sollte es noch gut gehen.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:00 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