W
WindowsHook
Gast
Guten Morgen,
bevor ich meine eigentliche Frage stelle möchte ich folgendes anmerken :
Bei meiner Frage handelt es sich eigentlich eher um die mögliche Machbarkeit als um einen produktiven Einsatz.
Zur Frage selbst :
Es gibt verschiedene Tools mit denen es möglich ist Java-Programme als Windows-Service laufen zu lassen. Soweit ist das auch kein Problem. Meine Frage bezieht sich jetzt auf die Kommunikation mit diesen.
Überlegung :
Der Service soll beim Start mit JNI einen "Hook-Point" erstellen. Also einen Punkt in den sich später eine weitere DLL "einhooken" kann. Zusätzlich soll dieser "Hook-Point" dann eine bi-direktionale Callback-Kommunikation ermöglichen, also das ich aus einer "Kontroll-Anwendung" Daten an den Service schicken kann und von diesem auch wieder Daten erhalte oder umgekehrt. Dabei soll das ganze a-synchron laufen und wenn möglich direkt mit Java-Objekten.
Problem :
Ich "spreche" leider kein C mit dem es realisierbar wäre.
Ich habe mich bereits soweit erkundigt das ich weis das es zwei "Teilnehmer" geben muss : der eine ist der Service selbst der einen "Hook-Point" anbietet, der andere ist die "Kontroll-Anwendung" die sich dort "einhookt" und so den Service steuern kann.
Das man sowas eigentlich nicht mit Java macht ist mir bewusst, aber ich sagte ja das es mir hier eher um die Machbarkeit als um einen sinnvollen Einsatz geht.
Nun daher meine Frage an die C-Profis : wie müsste sowas implementiert werden das es auch mit JNI funktioniert ? Auch bitte ich, wenn möglich, um lauffähigen Beispiel-Code den man anpassen kann da ich wie gesagt keine Ahnung von C habe.
Der Sinn dahinter soll lediglich sein eine Kommunikation zwischen zwei von einander unabhängigen Java-Programmen in getrennten VM-Instanzen auf Java-Objekt-Ebene zu ermöglichen ohne auf Dinge wie "Sockets" zurückgreifen zu müssen.
Ich hoffe das jemand meine Idee versteht und umsetzen kann. Wenn irgendwelche Informationen fehlen oder etwas unklar ist versuche ich es natürlich noch mal genauer zu erklären.
bevor ich meine eigentliche Frage stelle möchte ich folgendes anmerken :
Bei meiner Frage handelt es sich eigentlich eher um die mögliche Machbarkeit als um einen produktiven Einsatz.
Zur Frage selbst :
Es gibt verschiedene Tools mit denen es möglich ist Java-Programme als Windows-Service laufen zu lassen. Soweit ist das auch kein Problem. Meine Frage bezieht sich jetzt auf die Kommunikation mit diesen.
Überlegung :
Der Service soll beim Start mit JNI einen "Hook-Point" erstellen. Also einen Punkt in den sich später eine weitere DLL "einhooken" kann. Zusätzlich soll dieser "Hook-Point" dann eine bi-direktionale Callback-Kommunikation ermöglichen, also das ich aus einer "Kontroll-Anwendung" Daten an den Service schicken kann und von diesem auch wieder Daten erhalte oder umgekehrt. Dabei soll das ganze a-synchron laufen und wenn möglich direkt mit Java-Objekten.
Problem :
Ich "spreche" leider kein C mit dem es realisierbar wäre.
Ich habe mich bereits soweit erkundigt das ich weis das es zwei "Teilnehmer" geben muss : der eine ist der Service selbst der einen "Hook-Point" anbietet, der andere ist die "Kontroll-Anwendung" die sich dort "einhookt" und so den Service steuern kann.
Das man sowas eigentlich nicht mit Java macht ist mir bewusst, aber ich sagte ja das es mir hier eher um die Machbarkeit als um einen sinnvollen Einsatz geht.
Nun daher meine Frage an die C-Profis : wie müsste sowas implementiert werden das es auch mit JNI funktioniert ? Auch bitte ich, wenn möglich, um lauffähigen Beispiel-Code den man anpassen kann da ich wie gesagt keine Ahnung von C habe.
Der Sinn dahinter soll lediglich sein eine Kommunikation zwischen zwei von einander unabhängigen Java-Programmen in getrennten VM-Instanzen auf Java-Objekt-Ebene zu ermöglichen ohne auf Dinge wie "Sockets" zurückgreifen zu müssen.
Ich hoffe das jemand meine Idee versteht und umsetzen kann. Wenn irgendwelche Informationen fehlen oder etwas unklar ist versuche ich es natürlich noch mal genauer zu erklären.