
- •Распределенные системы обработки информации. Недашковский Вячеслав Михайлович
- •Лекция 3.09.04 Литература
- •1.Язык программирования Java
- •1.1.История и предпосылки
- •1.3.Архитектура Java
- •1.3.1Именованные константы
- •1.3.2Классы и объекты
- •1.3.3Комментарии
- •Лекция 21.09.04
- •1.3.4Класс Object
- •1.3.5Класс Class
- •Синхронизация
- •Взаимодействие потоков
- •1.5.Библиотека Swing
- •1.5.2Панели
- •1.5.3Обработка событий
- •2.1.1Требования к системе
- •2.1.2Прозрачность системы
- •2.2.Общие сведения о промежуточном слое
- •2.3.Типы промежуточного слоя
- •2.4.Удаленный вызов процедур
- •Лекция 2.11.04
- •2.5.Передача параметров
- •2.6.Передача параметров по ссылке.
- •2.7.Расширение модели rpc. Асинхронный вызов.
- •3.Общие сведения об объектно-ориентированном промежуточном слое. Обращение к удаленным объектам.
- •3.1.Привязка клиента к распределенному объекту.
- •3.2.Объекты времени компиляции и объекты времени выполнения (раздел)
- •3.3.Сохранные и не резидентные объекты.
- •3.3.1Привязка клиента к объекту.
- •3.4.Реализация ссылок на объект
- •Лекция 9.11.04
- •3.4.1Идентификатор сервера. Об именовании. Имена, идентификаторы, адреса.
- •Идентификатор сервера
- •3.5.2Динамическое обращение
- •Передача параметров
- •3.5.3Сервер объектов
- •3.5.4Адаптер объекта
- •3.6.Перенос кода
- •3.6.1Модели переноса кода
- •3.8.4Реализация технологии клиент-сервер на Java (работа с сетями)
- •Лекция 30.11.04
- •3.8.5Клиентская часть
- •Объяснение в виде диаграммы последовательности
- •3.8.6Дополнительные сведения rmi.Java
- •Разница между удаленными и локальными объектами.
- •Блокировка объектов
- •Вопрос удаленных объектов
- •4.Последний раздел языка Java: интерфейс jdbc при работе с бд
- •4.1.Определение местонахождения распределенных объектов
- •Именование
- •Трейдинг
- •Лекция 7.12.04
- •4.2.Иерархические подходы в службах локализации.
- •4.2.1Кэширование указателей
- •4.2.2Масштабирование
- •4.3.Объектный трейдинг.
- •4.5.Алгоритм Крестиана
- •4.6.Алгоритм Беркли
- •4.7.Логические часы. Алгоритм Лампорта.
- •4.8.Жизненный цикл объекта
- •4.9.Миграция объектов на удаленный хост
3.8.6Дополнительные сведения rmi.Java
В RMI распределенные объекты используются в виде модели удаленных объектов, это значит, что распределенный объект не будет хранится на одном компьютере, а доступ к нему через удаленный интерфейс. Один удаленный интерфейс реализован на клиенте, а другой на сервере в виде заместителя.
Разница между удаленными и локальными объектами.
Рассмотрим клонирование локальных и удаленных объектов. Для локальных создается копия с теми же состояниями. А для удаленного: клонирование должно состоять еще и в клонировании составных частей – заглушек. Этого разработчик RMI не осилит. Разработчики ограничились клонированием только серверной части, а если клиент хочет обратится к клону, то он должен осуществить связывание, то есть создать на клиентской части заместителя в адресном пространстве.
Блокировка объектов
Локальный объект: делаем методы синхронизированными и осуществляется блокировка и синхронизация.
Удаленный объект: синхронизировать обращение к нему значит:
Если хотим обращаться к синхронизированным методам: разработчики RMI ограничились синхронизацией только серверной части. Это не всегда обеспечивает защиту от одновременного доступа.
Вопрос удаленных объектов
В качестве параметров могут выступать простые и объектные типы. При передаче объектов есть нюансы: при передаче локального объекта передается копия (см. ранее рис), при передаче удаленного – ссылка на объект, значит она должна быть сериализуема, так как подвергается маршалингу. Ссылка должна содержать сетевой адрес удаленного объекта, конечную точку сервера, локальный идентификатор объекта и еще передается стек протоколов, т. е с помощью какого протокола осуществляется сетевое общение.
При обращении к удаленному объекту есть разделение: заглушка знает, где находится удаленный объект, а заместители тоже сериализуются, то есть могут быть переданы с компьютера на компьютер. В качестве ссылки на удаленный объект можно взять заглушку(заместителя - синонимы), потому что в ней есть вся информация и ее можно передать. В будущем будем это использовать.
4.Последний раздел языка Java: интерфейс jdbc при работе с бд
JDBC - Java Data Base Connectivity.
Этот интерфейс с 1996 г. позволяет с помощью SQL обращаться к БД разных производителей. Причем на Java программы от платформы не зависят. Этот интерфейс основан на модели ODBC Microsoft. Вот суть:
JDBC.
Рис. 4.18.
Есть сечение – с ним работает пользователь. Это JDBC API. И есть наборы драйверов. Основная вещь – менеджер драйверов, который переадресовывает запросы к конкретным драйверам и теперь можно нарисовать трехуровневую архитектуру.
Трехуровневая архитектура.
Рис. 4.19.
Есть клиентская часть (внутреннее представление), Есть промежуточный уровень – бизнес-логика, JDBC и сервер БД. В основе лежит SQL запрос у бизнес-логики.
Есть лаба.
4.1.Определение местонахождения распределенных объектов
Есть способы идентификации объектов на сервере:
именование
трейдинг
Именование
Основное назначение службы именования – управление пространствами имен, представляющими собой наборы связей между именами и объектными ссылками.
Клиент отправляет в службу именования имя, а в ответ получает объектную ссылку, а дальше уже знает где объект и общается с ним.