Передача параметров в Corba и RMI - PullRequest
0 голосов
/ 21 октября 2019

Я все еще изучаю концепцию удаленного вызова и пытался найти это, но я не могу найти информацию, которая объясняет это так, как я могу понять. Я пытаюсь выяснить, что передается по значению и что передается по ссылке в 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.

...