Содержание
- Сериализация
- Сериализация и десериализация
- Объектные потоки
- Автоматическая сериализация
- Ручная сериализация
- Настраиваемая сериализация
- Сериализация и версионирование
- Сериализация и дескрипторы
- Концепции RMI
- Предназначение
- Схема работы и стек протоколов
- Удаленные интерфейсы
- Stub и Skeleton
- Распределенная сборка мусора
- RMI Registry
- Применение RMI
Примеры
zipДомашнее задание 12. Физические лица
-
Добавьте к банковскому приложению возможность работы с физическими
лицами.
-
У физического лица (
Person
) можно запросить имя, фамилию и номер паспорта. -
Удалённые физические лица (
RemotePerson
) должны передаваться при помощи удалённых объектов. -
Локальные физические лица (
LocalPerson
) должны передаваться при помощи механизма сериализации, и при последующем использовании не требовать связи с сервером. - Должна быть возможность поиска физического лица по номеру паспорта, с выбором типа возвращаемого лица.
- Должна быть возможность создания записи о физическом лице по его данным.
-
У физического лица (
-
У физического лица может быть несколько счетов,
к которым должен предоставляться доступ
через
Person
. - Счёту физического лица с идентификатором subId должен соответствовать банковский счёт с id вида personId:subId.
-
Изменения, производимые со счётом в банке
(создание и изменение баланса), должны быть видны всем
соответствующим
RemotePerson
, и только темLocalPerson
, которые были созданы после этого изменения. -
Изменения в счетах, производимые через
RemotePerson
, должны сразу применяться глобально, а производимые черезLocalPerson
– только локально для этого конкретногоLocalPerson
. -
Реализуйте приложение, демонстрирующее работу с физическим лицами.
- Аргументы командной строки: имя, фамилия, номер паспорта физического лица, номер счёта, изменение суммы счёта.
- Если информация об указанном физическом лице отсутствует, то оно должно быть добавлено. В противном случае – должны быть проверены его данные.
- Если у физического лица отсутствует счёт с указанным номером, то он создается с нулевым балансом.
- После обновления суммы счёта новый баланс должен выводиться на консоль.
- Сложный вариант
- На каждом счету всегда должно быть неотрицательное количество денег.
-
Приложение должно находится в пакете
info.kgeorgiy.ja.*.bank
и его подпакетах.
Домашнее задание 13. Физические лица (тесты)
-
Напишите тесты, проверяющие поведение банка и приложения
из домашнего задания Физические лица.
- Для реализации тестов рекомендуется использовать JUnit (Tutorial). Множество примеров использования можно найти в тестах.
- Если вы знакомы с другим тестовым фреймворком (например, TestNG), то можете использовать его.
-
Добавьте jar-файлы используемых библиотек в каталог
lib
вашего репозитория. - Нельзя использовать самописные фреймворки и тесты,
запускаемые через
main
.
- Сложный вариант
- Тесты не должны рассчитывать на наличие запущенного RMI Registry.
-
Создайте класс
BankTests
, запускающий тесты. -
Создайте скрипт, запускающий
BankTests
и возвращающий код (статус)0
в случае успеха и1
в случае неудачи. - Создайте скрипт, запускающий тесты с использованием стандартного подхода для вашего тестового фреймворка. Код возврата должен быть как в предыдущем пункте.
-
Тесты должны находится в пакете
info.kgeorgiy.ja.*.bank
и его подпакетах. - При сдаче вам нужно будет продемонстрировать работу тестов на вашем компьютере.
Это домашнее задание связано с домашним заданием Физические лица и будет приниматься только с ним.