Содержание
- 2. План лекции Общие принципы RMI Элементы распределенной системы RMI Порядок разработки и запуска RMI-приложений Нововведения в
- 3. Remote Method Invocation Основной принцип: определение поведения и реализация этого поведения считаются разными понятиями RMI дает
- 4. Remote Method Invocation В RMI удаленная служба определяется при помощи интерфейса Java Реализация удаленной службы кодируется
- 5. RMI: принцип действия Интерфейсы Java не содержат исполняемого кода RMI поддерживает два класса, реализующих один и
- 6. RMI: принцип действия Клиентская программа вызывает методы прокси-объекта, RMI передает запрос на удаленную JVM и направляет
- 7. Уровни архитектуры RMI Уровень заглушки и скелета Уровень удаленной ссылки Транспортный уровень
- 8. Уровень заглушки и скелета Непосредственно с ним взаимодействует разработчик Перехватывает вызовы методов, произведенные клиентом при помощи
- 9. Уровень удаленной ссылки Удаленная ссылка (remote reference) Может включать в себя адрес компьютера, адрес приложения и
- 10. Транспортный уровень Основан на соединениях TCP/IP между сетевыми машинами Обеспечивает основные возможности соединения и некоторые стратегии
- 11. Вызов удаленного метода
- 12. Действия при вызове удаленного метода Заглушка Высылает серверу пакет с идентификатором удаленного объекта, описанием вызываемого метода
- 13. Передача параметров Аргументы методов и возвращаемое значение могут быть следующих типов: Простые типы Объектные типы Удаленные
- 14. Параметры простых типов Когда в качестве параметра в удаленный метод передается простой тип данных, RMI передает
- 15. Параметры объектных типов RMI передает между JVM сам объект, а не ссылку на него, т.е. объект
- 16. Параметры удаленных объектных типов При передаче в качестве параметра или возвращаемого значения ссылки на заглушку удаленного
- 17. Синтаксис вызова Синтаксис вызова такой же, как и при локальном вызове Используются ссылки интерфейсных типов centralWarehouse.getQuantity("SuperSucker
- 18. Динамическая загрузка классов Класс заглушки должен быть доступен клиенту RMI-клиенты могут сами динамически загружать классы заглушек
- 19. Пример работы
- 20. Именование удаленных объектов Как клиент находит удаленный объект RMI? Клиенты находят удаленные объекты, используя службу имен
- 21. На стороне сервера Программа сервера создает удаленный объект, создавая локальный объект, реализующий нужную функциональность Затем программа
- 22. На стороне клиента Доступ к реестру RMI обеспечивается через статический класс Naming Он предоставляет метод lookup(),
- 23. Основные элементы распределенной RMI-системы Интерфейс удаленного объекта Класс, реализующий удаленный объект Файлы классов stub'а и skeleton'а.
- 24. Соглашения именования классов
- 25. Порядок разработки серверной части Определение интерфейса удаленного объекта Написание класса, реализующего этот интерфейс Создание программы серверной
- 26. Описание интерфейса Product import java.rmi.*; /** * The interface for remote product objects. */ public interface
- 27. Реализация интерфейса ProductImpl import java.rmi.*; import java.rmi.server.*; public class ProductImpl extends UnicastRemoteObject implements Product { public
- 28. Сервер ProductServer import java.rmi.*; import java.rmi.server.*; public class ProductServer { public static void main(String args[]) {
- 29. Порядок работы клиентской части Запуск менеджера безопасности (Security Manager) Поиск удаленного объекта Вызов какого-либо метода удаленного
- 30. Клиент ProductClient import java.rmi.*; import java.rmi.server.*; public class ProductClient { public static void main(String[] args) {
- 31. Файл политики безопасности Определяет права на доступ к различным ресурсам Используется менеджером безопасности Необходимо любому загружаемому
- 32. Разделение кода для распределенного приложения Server Папка, где располагается сервер Не должна быть доступна клиенту Должна
- 33. Разделение кода для распределенного приложения Client Папка, где располагается клиент Должна содержать, как минимум, следующие файлы:
- 34. Разделение кода для распределенного приложения Download Содержит классы, используемые с данного сервера Классы из нее могут
- 35. Запуск серверной части Запуск программы RMIRegistry Запуск программы сервера удаленного объекта UNIX: java -Djava.rmi.server.codebase=file:classDir/ ProductServer &
- 36. Запуск клиентской части Файл политики безопасности должен быть доступен менеджеру безопасности Запуск производится как запуск обычного
- 37. Нововведения Java5 Стала необязательной компиляция заглушек с помощью rmic Расширились возможности службы именования Немного изменился подход
- 38. Интерфейс и реализация в стиле Java5 import java.rmi.Remote; import java.rmi.RemoteException; public interface Hello extends Remote {
- 39. Сервер в стиле Java5 import java.rmi.registry.*; import java.rmi.server.*; public class HelloServer { public static void main(String
- 40. Спасибо за внимание!
- 42. Скачать презентацию