Ich bin dabei, 4 verschiedene Software-Komponenten zu refactorieren, die ziemlich genau dasselbe in einen einzigen Dienst tun (kein Web-Dienst - notwendig oder sogar wahrscheinlich). 3 sind in C++ geschrieben, während das letzte und wichtigste in Java geschrieben ist. Der Rest des Systems ist in Java geschrieben und deshalb werde ich den C++ - Code nicht neu gestalten und JNI verwenden, insbesondere da die derzeit in C++ geschriebenen Komponenten planmäßig durch Java-Komponenten in absehbarer Zukunft ersetzt werden.Sollte ein Software-Service vollständig eigenständig sein oder kann/sollte er Teil einer größeren Komponente sein?
Die Komponente, die derzeit in Java implementiert ist, ist eigentlich eine Unterkomponente einer größeren Komponente. Wenn die größere/Umhüllungskomponente die Unterkomponente verwenden möchte (die zu einem Dienst refaktorisiert wird), ruft sie einfach intra-process Java-Methoden auf. Wenn ich diese Unterkomponente in einen separaten Dienst umgestalte, verliert die ursprüngliche Umhüllungskomponente den Vorteil, den sie derzeit beim Aufruf der Prozessmethode hat.
Sollte ich dann einen Thread der Original/Wrapping-Komponente hinzufügen, um als das Service-Gateway zu fungieren, oder sollte ich den Code vollständig in einen eigenständigen Dienst umgestalten.
Ich hoffe, dass ich ...