Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры-2 оопип часть 4.doc
Скачиваний:
46
Добавлен:
01.04.2014
Размер:
445.44 Кб
Скачать

83. Пакеты javax.Servlet и javax.Servlet.Http

Java Serviet API - стандартный набор классов и интерфейсов по созданию и обслуживанию serviet. Serviet API определяет стандартные средства по обработке запросов и ответов посредством serviet. Java Serviet API представляет множество классов, сгруппированных в двухосновных пакетах - javax.servlet и javax.servlet.http. Последний предназначен непосредственно для работы с HTTP-протоколом. Кроме HTTP-протокола, servlet поддерживает также широко распространенные почтовые протоколы POP и SMTP, а также протокол передачи файлов FTP и пользовательских протоколов. Java Serviet API является стандартным расширением JDK Java Extension API, который не является частью основного Java API, но доступен как добавочный. Пакеты по работе с servlets поставляются фирмой SUN В нескольких разных наборах разработчика (SDK)

Пакет javax.servlet содержит классы для создания servlets, независимых от протоколов передачи. Servlets, сгенерированные из классов данного пакета, могут работать с различными протоколами передачи данных, например HTTP и FTP.

Пакет javax.servlet.http содержит классы, предназначенные для генерации serviet, работающих только по протоколу HTTP. В отличие от стандартных serviet, в спецификации 2.1 указываются методы doGet() и doPost(), заменяющие собой основной метод service().

Установка Servlet Development Kits зависит от того, в каком инструментарии находятся пакеты содержащие servlet классы.

После установки какого-либо Development Kit, содержащего необходимые архивы, обязательно правильно установить системную переменную CLASSPATH, для того чтобы компилятор javac смог правильно определить местоположение классов, необходимых для создания servlet.

84. Технология rmi. Сравнение распределенных и нераспределенных приложений

В основу RMI положена идея удаленного вызова процедур RPC (Remote Procedure Call), которая состоит в расширении хорошо известного и понятного механизма передачи управления и данных внутри программы, выполняющейся на одной машине, на передачу управления и данных через сеть. Средства удаленного вызова процедур предназначены для облегчения организации распределенных вычислений. Наибольшая эффективность использования RPC достигается в тех приложениях, в которых существует интерактивная связь между удаленными компонентами с небольшим временем ответов и относительно малым количеством передаваемых данных. Такие приложения называются RPC-ориентированными. Реализация удаленных вызовов существенно сложнее реализации вызовов окальных процедур, т.к. поскольку вызывающая и вызываемая процедуры выполняются на разных машинах, то они имеют разные адресные пространства, и это создает проблемы при передаче параметров и результатов, особенно если машины не идентичны. Так как RPC не может рассчитывать на разделяемую память, то это означает, что параметры RPC не должны содержать указателей на ячейки нестековой памяти и что значения параметров должны копироваться с одного компьютера на другой. Следующим отличием RPC от локального вызова является то, что он обязательно использует нижележащую систему связи, однако это не должно быть явно видно ни в определении процедур, ни в самих процедурах. Удаленность вносит дополнительные проблемы. Выполнение вызывающей программы и вызываемой локальной процедуры в одной машине реализуется в рамках единого процесса. Но в реализации RPC участвуют как минимум два процесса - по одному в каждой машине.

Кроме того, существует ряд проблем, связанных с неоднородностью языков программирования и операционных сред: структуры данных и структуры вызова процедур, поддерживаемые в каком-либо одном языке программирования, не поддерживаются точно так же во всех других языках.

Эти и некоторые другие проблемы решает широко распространенная технология RPC, лежащая в основе многих распределенных операционных систем.

В Интернет и корпоративных сетях может возникнуть необходимость вызвать метод, принадлежащий объекту на другом компьютере. Java обеспечивает такие вызовы с помощью механизма вызова удаленных методов, получившего название активизации удаленных объектов (RMI).

RMI-технология позволяет выполнять прозрачный запуск методов объектов Java, которые расположены на удаленных машинах, таким образом, как если бы они располагались на локальных машинах. RMI – позволяет строить приложения, работа которых распределена между несколькими машинами в архитектуре клиент-сервер.