Spec-Zone .ru
спецификации, руководства, описания, API
|
СОДЕРЖАНИЕ | ПРЕДЫДУЩИЙ | NEXT | Java Удаленный Вызов метода |
В
Потоки входа и выхода, используемые RMI, соединяются. У каждого поток есть соответствие В потоке. Поток в грамматике отображается на поток вывода сокета (с точки зрения клиента). В потоке (в грамматике) соединяется с входным потоком соответствующего сокета. Так как выходной и входной потоки соединяются, единственной информацией о заголовке, необходимой на входном потоке, является подтверждение относительно того, понимается ли протокол; другая информация о заголовке (такая как магическое число и номер версии) может подразумеваться контекстом потокового соединения.
Сообщения обертываются в пределах определенного протокола как определено Протоколом. Для SingleOpProtocol после Заголовка может только быть одно сообщение, и нет никаких дополнительных данных, в которые обертывается сообщение. SingleOpProtocol используется для вызова, встроенного в запросы HTTP, где взаимодействие вне единственного запроса и ответа не возможно.
Для StreamProtocol и MultiplexProtocol, сервер должен ответить байтом 0x4e подтверждающий поддержку протокола, и EndpointIdentifier, который содержит имя хоста и номер порта, который может видеть сервер, используется клиентом. Клиент может использовать эту информацию, чтобы определить ее имя хоста, если это иначе неспособно сделать это для соображений безопасности. Клиент должен тогда ответить другим EndpointIdentifier, который содержит конечную точку клиента по умолчанию для того, чтобы принять соединения. Это может использоваться сервером в случае MultiplexProtocol, чтобы идентифицировать клиент.
Для StreamProtocol, после этого согласования конечной точки, сообщения отправляются по потоку вывода без любого дополнительного обертывания данных. Для MultiplexProtocol сокетное соединение используется в качестве конкретного соединения для мультиплексированного соединения, как описано в Разделе 10.6, "Протокол Мультиплексирования RMI." Виртуальные соединения, инициируемые по этому мультиплексированному соединению, состоят из ряда сообщений как описано ниже.
Есть три типа выходных сигналов: Вызовите, Ping и DgcAck. Вызов кодирует вызов метода. Ping является сообщением на транспортном уровне для того, чтобы протестировать живой из удаленной виртуальной машины. DGCAck является подтверждением, направленным к распределенному сборщику "мусора" сервера, который указывает, что удаленные объекты в возвращаемом значении от сервера были получены клиентом.