Kommunikation zwischen Programmen

FreakyM

Mitglied
Hallo an Alle,

ich implementiere momentan ein Programm, welches das Ergebnis eines "Polygonverschmelzers" benötigt. "Polygonverschmelzer" deswegen, da es aktuell ein einzelnes in C geschriebenes Programm ist, also somit nicht in meinem Programm enthalten ist.

Ich kenne RMI und auch CORBA...Natürlich könnte man dies mit CORBA lösen, jedoch ist das RELATIV aufwendig und setzt vorraus, dass ich auch den "Polygonverschmelzer" verändern kann (was ich nicht kann)! Gibt es andere Lösungen um an das Ergebnis des "Polygonverschmelzers" zu kommen? Also bitte keine Notlösungen,sowas wie Kommunikation über die Festplatte (Dateien) :P



Noch eine algemeine Frage:
Ich bin eher der Freund davon, Code in mein Programm direkt einzubauen! Da sowas ja denke ich schneller ist und eventuell auch "schöner"...
Jedoch gibt es in meiner Firma viele kleine Programme die ihren Zweck haben wie z.B. dieser "Polygonverschmelzer" und an mehreren Stellen verwendet werden, daher auch einzeln existieren.

Aber was ist nun wirklich "besser"?
Code einbauen (also den Polygonverschmelzer in Java umcoden) oder Kommunikation implementieren (wie auch immer)?

Vorteil: Wenn ich ihn in Javacode hätte könnte er einzeln existieren UND auch wenn benötigt direkt eingebaut werden ohne Kommunikation...

Nachteil: Ich muss es umcoden, wobei ich nicht weis ob er genauso gut/schnell ist und außerdem kostet es Zeit, welche ich nicht habe...

Was ist jetzt die bessere Lösung? Bzw. habt ihr schonmal ähnliche Probleme gehabt und wie habt ihr das gelöst? Dieses Problem habe ich nicht nur bei diesem einen Programm, es gibt viele "kleine" Tools die in meiner Firma historisch bedingt so entstanden sind und welche ich gerne verwenden würde!


Gruß
Dennis
 
Zuletzt bearbeitet:
Huhu,
Hast du dir schon mal https://en.wikipedia.org/wiki/Java_Native_Access angeschaut, damit solltest du den Code direkt in deinem Programm nutzen können…

Damit wird es wohl am bequemsten gehen.
Du brauchst eigentlich nur eine DLL mit exportierten Funktionen welche du aufrufen kannst.
Der Aufruf geschieht dann direkt über JNA.
In diesem Fall müssen die Funktionen des "Polygonverschmelzers" (was ist denn das?!) als dynamische Bibliothek verfügbar sein (DLL)

Wenn man jedoch abenteuerlustiger ist, kann man sich seine eigene JNI Library schreiben, welche von Java aus aufgerufen wird.
Diese JNI Library dient dann als Brücke und würde weiteres aufrufen.

mfg,
Martin
 
Zurück