Cela dépend de la magie qui se passe dans votre partie "en quelque sorte communiquer à distance".
Si cette communication est effectuée via RMI ou une technologie similaire, alors ce sera très bien. L'application B crée un proxy distant pour l'objet Operation
dans la machine virtuelle Java A et les méthodes appelantes de ce proxy génèrent des requêtes HTTP vers la machine JVM A, qui sont résolues par rapport à l'objet réel vivant dans cette machine virtuelle Java (ayant accès à la classe d'implémentation).
Si cette communication est effectuée en sérialisant des objets et en les envoyant sur le réseau, cela ne fonctionnera pas. Lorsque l'objet de l'application A arrive dans JVM B, la désérialisation échoue (avec un ClassNotFoundException
ou similaire).
Il pourrait bien y avoir d'autres technologies d'accès distant, auquel cas les choses dépendent de l'implémentation. Je sais que les chargeurs de classes peuvent charger des classes à partir de tableaux d'octets, et donc il est conceptuellement très possible d'avoir de tels chargeurs de classe qui seraient capables de charger des classes à partir de sources distantes. De cette façon, la bibliothèque de mise en réseau pourrait en théorie sérialiser la classe réelle sur le réseau, de sorte que même si la JVM B ne connaît pas nativement la classe d'implémentation, son chargeur de classe serait fourni avec le bytecode de la classe.
Est-ce une question RMI? –
Oui. L'idée est que ces instances d'opération soient échangées en tant que paramètres de méthode dans les EJB. – jan