Я все еще изучаю концепцию удаленного вызова и пытался найти это, но я не могу найти информацию, которая объясняет это так, как я могу понять. Я пытаюсь выяснить, что передается по значению и что передается по ссылке в RMI и Corba. У меня есть этот вопрос в контексте примера. У меня есть один пример, который использует параметр out в интерфейсе IDL: Client.java
PersonHolder person = new PersonHolder(p);//where p is a person with 2 values assigned "name" and "email"(this Person object was created in the client and was defined as a struct in the IDL)
o.getPerson(person);
GetPerson был определен в IDL как
void getPerson(out Person p);
Сервер вызывает getPerson и пытаетсясначала распечатать исходные значения. Однако, когда он печатает на сервере, все значения равны нулю. Это выглядит так, как будто лицо, которое клиент передал в PersonHolder, не было передано вообще.
Затем я попробовал этот же пример с типом inout, и Person, который клиент передал в PersonHolder, действительно содержит данные, которые были инициализированы. клиентом.
Если кто-то может объяснить мне разницу между входом, выходом и выходом в контексте этой конкретной проблемы, это будет оценено.
Я надеюсь, что это даст мнелучшее понимание передачи параметров и возвращаемых значений в среде RMI или Corba.