Java-интерфейсы.
Операционные системы
Поскольку вызывающая и вызываемая процедуры выполняются на разных машинах, то они исполняются в разных областях памяти, а это означает, что параметры RPC не должны содержать указателей на ячейки памяти, а значения параметров передаются копированием с одного компьютера на другой; Передача по сети потенциально опасного кода Java. Поэтому существуют определенные ограничения на возможности… Читать ещё >
Java-интерфейсы. Операционные системы (реферат, курсовая, диплом, контрольная)
Применение языка программирования Java для организации связи «клиент-сервер» сильно изменило технологии программирования по отношению к CGI. Это обусловлено гем фактом, что механизмы, формирующие страницы, которые отображается клиенту, переносятся со стороны сервера на сторону клиента. При этом решаются следующие задачи:
- • динамическое формирование страниц на клиентской стороне приводит к существенному расширению возможностей представления информации и интерактивного взаимодействия «клиент-сервер»;
- • аппаратно-программная независимость выполняемых приложений;
- • упрощение архитектуры веб-сервера и облегчение его работы;
- • возможность использования напрямую стека протоколов TCP/IP, что может повысить скорость и надежность передачи информации;
• возможность организации работы многооконных и многопоточных приложений на стороне клиента.
Однако имеются и отрицательные стороны:
- • повышенные требования к сетевому каналу, так как от сервера к клиенту пересылается вся исполняющаяся программа плюс данные для нее;
- • исполнение Java-скриптов возможно только при наличии виртуальной Java-машины, а ее разные реализации часто приводят в неодинаковому представлению информации конечному пользователю;
- • интерпретация Java-кодов повышает требования к производительности машины клиента;
- • передача по сети потенциально опасного кода Java. Поэтому существуют определенные ограничения на возможности передаваемых и исполняемых кодов, в частности отсутствует возможность записи информации на постоянные носители из-за опасности распространения вирусов и т. д.
Вызов удаленных процедур
Другим средством взаимодействия процессов и обменом информации в распределенной системе является механизм вызова удаленных процедур (Remote Procedure Call, RPC). Механизм вызова удаленных процедур состоит в переносе механизма передачи управления и данных внутри программы, выполняющемся на одной машине, на передачу управления и данных через сеть. Средства удаленного вызова процедур предназначены для облегчения управления удаленными компьютерами или передачи данных в распределенной системе. Механизм RPC является весьма сложным механизмом и эффективен только для обмена малыми порциями информации.
Механизм RPC основан на следующих принципах:
- • асимметричности, т. е. одна из взаимодействующих сторон является инициатором. Взаимодействие сторон осуществляется на основе архитектуры «клиент-сервер»;
- • синхронности. Исполнение действий при взаимодействии сторон должно происходить синхронно, причем любая операция должна закончиться до начала следующей. Иными словами, выполнение вызывающей процедуры приостанавливается с момента выдачи запроса и возобновляется только после ответа из вызываемой процедуры.
Сложность реализации удаленных вызовов обусловлена следующими факторами:
- • вызывающая и вызываемая процедуры могут выполняться на разных машинах (в том числе с разными архитектурами и ОС) и имеют разные адресные пространства;
- • поскольку вызывающая и вызываемая процедуры могут выполняться на машинах с разной архитектурой, то это создает проблемы формата параметров и результатов при их передаче и представлении;
- • поскольку вызывающая и вызываемая процедуры выполняются на разных машинах, то они исполняются в разных областях памяти, а это означает, что параметры RPC не должны содержать указателей на ячейки памяти, а значения параметров передаются копированием с одного компьютера на другой;
- • использование при RPC нижележащего стека протоколов не должно отражаться на самих процедурах;
- • при прерывании работы клиента или сервера должно быть предусмотрено прекращение работы другой стороны (устранение проблемы зависаний).
Пользователь, вызывая RPC, не должен знать об этом. Для пользователя вызов как локальной, так и удаленной процедуры должен проходить одинаково. Когда в системе происходит вызов удаленной процедуры, то осуществляется подмена вызываемой библиотеки: вместо локальной версии библиотеки, вызывается удаленная версия. Аналогично происходят и прерывания, только вместо обращения к локальному ядру происходит обращение к удаленному ядру. Обычно RPC базируются на инфраструктуре распределенной вычислительной среды (Distributed Computing Environment, DCE)[1].
- [1] Dijkstra Е. W. Cooperating Sequential Processes.