Кодирование информации
<<  Помехоустойчивое кодирование Кодирование видеоинформации  >>
Сериализация и RMI
Сериализация и RMI
Содержание
Содержание
Сериализация
Сериализация
Сериализация и десериализация
Сериализация и десериализация
Десериализация объектов
Десериализация объектов
Сериализация объектов
Сериализация объектов
Что можно сериализовать
Что можно сериализовать
Автоматическая сериализация
Автоматическая сериализация
Сериализация в ручную
Сериализация в ручную
Настраиваемая сериализация
Настраиваемая сериализация
Запись и чтение дескрипторов
Запись и чтение дескрипторов
Версии сериализованных классов
Версии сериализованных классов
Концепции RMI
Концепции RMI
Remote method invocation
Remote method invocation
Схема взаимодействия
Схема взаимодействия
Удаленные интерфейсы
Удаленные интерфейсы
Передача данных
Передача данных
Stub и skeleton
Stub и skeleton
Distributed garbage collecting
Distributed garbage collecting
Поиск удаленных объектов
Поиск удаленных объектов
Экспорт объектов
Экспорт объектов
Применение RMI
Применение RMI
Банк
Банк
Удаленный интерфейс банка
Удаленный интерфейс банка
Удаленный интерфейс счета
Удаленный интерфейс счета
Реализация счета
Реализация счета
Реализация банка
Реализация банка
Сервер
Сервер
Клиент
Клиент
Создание счета
Создание счета
Операции со счетом
Операции со счетом
Создание stub
Создание stub
Дополнительные возможности RMI
Дополнительные возможности RMI
Заключение
Заключение
Ссылки по сериализации
Ссылки по сериализации
Ссылки по RMI
Ссылки по RMI
Вопросы
Вопросы
Презентация «Сериализация». Размер 113 КБ. Автор: Geo.

Загрузка...

Сериализация

содержание презентации «Сериализация.ppt»
СлайдТекст
1 Сериализация и RMI

Сериализация и RMI

Сериализация и RMI. Java Advanced.

2 Содержание

Содержание

Содержание. Сериализация Концепции RMI Применение RMI Заключение. Java Advanced / Сериализация и RMI.

3 Сериализация

Сериализация

Сериализация. Часть 1.

4 Сериализация и десериализация

Сериализация и десериализация

Сериализация и десериализация. Сериализация – запись объекта в байтовый поток Десериализация – чтение объекта из байтового потока Пакет java.io При сериализации и десериализация используется все данные, которые достижимы из объекта. Java Advanced / Сериализация и RMI.

5 Десериализация объектов

Десериализация объектов

Десериализация объектов. Чтение объектов Интерфейс ObjectInput extends DataInput Класс ObjectInputStream Метод readObject() Исключение ClassNotFoundException InvalidClassException. Java Advanced / Сериализация и RMI.

6 Сериализация объектов

Сериализация объектов

Сериализация объектов. Запись объектов Интерфейс ObjectOutput extends DataOutput Класс ObjectOutputStream Метод writeObject(object) Исключение NotSerializableException. Java Advanced / Сериализация и RMI.

7 Что можно сериализовать

Что можно сериализовать

Что можно сериализовать. Автоматически сериализуемые классы Маркерный интерфейс Serializable Классы, сериализуемые в ручную Интерфейс Externalizable. Java Advanced / Сериализация и RMI.

8 Автоматическая сериализация

Автоматическая сериализация

Автоматическая сериализация. Процесс записи Записывается предок Записываются значения всех полей, не имеющих модификатора transient Процесс чтения Выделяется память под объект Считывается предок Считываются значения всех полей , не имеющих модификатора transient. Java Advanced / Сериализация и RMI.

9 Сериализация в ручную

Сериализация в ручную

Сериализация в ручную. Интерфейс Externalizable Методы readExternal(ObjectInput in) – должен прочесть состояние из потока writeExternal(ObjectOutput out) – должен записать состояние в поток Процесс чтения Создание конструктором по умолчанию Вызов метода readExternal. Java Advanced / Сериализация и RMI.

10 Настраиваемая сериализация

Настраиваемая сериализация

Настраиваемая сериализация. Применяется для обеспечения совместимости Методы readObject(ObjectInputStream in) – должен прочесть состояние из потока writeObject(ObjectOutputStream out) – должен записать состояние в поток Процесс чтения Выделение памяти Чтение родителя Вызов метода readObject. Java Advanced / Сериализация и RMI.

11 Запись и чтение дескрипторов

Запись и чтение дескрипторов

Запись и чтение дескрипторов. Применяется когда сам объект не должен сериализовываться Методы Object writeReplace() – какой объект записать вместо этого Object readResolve() – какой объект реально был записан Реализуются у разных классов. Java Advanced / Сериализация и RMI.

12 Версии сериализованных классов

Версии сериализованных классов

Версии сериализованных классов. Применяется для обеспечения совместимости когда версии сериализованного объекта меняются Поле private final static long serialVersionUID Инструмент serialver <имя класса> Java Advanced / Сериализация и RMI.

13 Концепции RMI

Концепции RMI

Концепции RMI. Часть 2.

14 Remote method invocation

Remote method invocation

Remote Method Invocation. Механизм, позволяющий объектом из одной Java-машины вызывать методы другой Java-машины RMI работает по сети Пакет java.rmi. Java Advanced / Сериализация и RMI.

15 Схема взаимодействия

Схема взаимодействия

Схема взаимодействия. Java Advanced / Сериализация и RMI.

16 Удаленные интерфейсы

Удаленные интерфейсы

Удаленные интерфейсы. Удаленный интерфейс – интерфейс, унаследованный от Remote Все методы удаленных интерфейсов должны бросать RemoteException. Java Advanced / Сериализация и RMI.

17 Передача данных

Передача данных

Передача данных. Объекты, реализующие интерфейс Remote передаются по удаленным ссылкам Остальные объекты передаются по значению путем сериализации. Java Advanced / Сериализация и RMI.

18 Stub и skeleton

Stub и skeleton

Stub и skeleton. Stub и Skeleton генерируются по удаленному классу Stub служит для передачи данных по сети. Реализует все удаленные интерфейсы класса и только их Skeleton служит для приема данных по сети и вызов методов реальтного объекта. Java Advanced / Сериализация и RMI.

19 Distributed garbage collecting

Distributed garbage collecting

Distributed Garbage Collecting. Удаление объектов, на которых больше не ссылок в распределенной среде Механизм лизинга Интерфейс Unreferenced Метод unreferenced(). Java Advanced / Сериализация и RMI.

20 Поиск удаленных объектов

Поиск удаленных объектов

Поиск удаленных объектов. Ссылки на удаленный объекты публикуются в RMI registry Удаленные объекты ищутся по URL вида rmi://<host>:<port>/<object>, где host:port – местоположение RMI registry object – зарегистрированное имя объекта. Java Advanced / Сериализация и RMI.

21 Экспорт объектов

Экспорт объектов

Экспорт объектов. Прежде чем быть переданными на другую машину объект должен быть экспортирован Метод UnicastRemoteObject.exportObject(object) Наследники UnicastRemoteObject экспортируются автоматически. Java Advanced / Сериализация и RMI.

22 Применение RMI

Применение RMI

Применение RMI. Часть 3.

23 Банк

Банк

Пример: банк. Банк поддерживает счета, идентифицируемые строками По счету можно Узнать идентификатор Узнать сумму денег на счете Изменить сумму денег на счете. Java Advanced / Сериализация и RMI.

24 Удаленный интерфейс банка

Удаленный интерфейс банка

Удаленный интерфейс банка. public interface Bank extends Remote { // Создает счет public Account createAccount(String id) throws RemoteException; // Возвращает счет public Account getAccount(String id) throws RemoteException; }. Java Advanced / Сериализация и RMI.

25 Удаленный интерфейс счета

Удаленный интерфейс счета

Удаленный интерфейс счета. public interface Account extends Remote { // Узнать идентификатор public String getId() throws RemoteException; // Узнать количество денег public int getAmount() throws RemoteException; // Установить количество денег public void setAmount(int amount) throws RemoteException; }. Java Advanced / Сериализация и RMI.

26 Реализация счета

Реализация счета

Реализация счета. Класс AccountImpl implements Account public String getId() { return id; } public int getAmount() { return amount; } public void setAmount(int amount) { this.amount = amount; }. Java Advanced / Сериализация и RMI.

27 Реализация банка

Реализация банка

Реализация банка. Класс BankImpl implements Bank public Account createAccount(String id) { Account account = new AccountImpl(id); accounts.put(id, account); return account; } public Account getAccount(String id) { return accounts.get(id); }. Java Advanced / Сериализация и RMI.

28 Сервер

Сервер

Сервер. Регистрация банка в RMI registry Bank bank = new BankImpl(); try { UnicastRemoteObject.exportObject(bank); Naming.rebind("rmi://localhost/bank", bank); } catch (RemoteException e) { System.out.println("Cannot export object: " + e.getMessage()); e.printStackTrace(); } catch (MalformedURLException e) { System.out.println("Malformed URL"); }. Java Advanced / Сериализация и RMI.

29 Клиент

Клиент

Клиент (1). Получение ссылки на банк Bank bank; try { bank = (Bank) Naming.lookup("rmi://localhost/bank"); } catch (NotBoundException e) { System.out.println("Bank URL is invalid"); return; } catch (MalformedURLException e) { System.out.println("Bank is not bound"); return; }. Java Advanced / Сериализация и RMI.

30 Создание счета

Создание счета

Клиент (2). Создание счета Account account = bank.getAccount("geo"); if (account == null) { System.out.println("Creating account"); account = bank.createAccount("geo"); } else { System.out.println("Account already exists"); }. Java Advanced / Сериализация и RMI.

31 Операции со счетом

Операции со счетом

Клиент (3). Операции со счетом System.out.println("Money: " + account.getAmount()); System.out.println("Adding money"); account.setAmount(account.getAmount() + 100); System.out.println("Money: " + account.getAmount()); Java Advanced / Сериализация и RMI.

32 Создание stub

Создание stub

Запуск. Создание Stub для классов rmic AccountImpl BankImpl Запуск RMI Registry rmiregistry Запуск сервера Запуск клиента. Java Advanced / Сериализация и RMI.

33 Дополнительные возможности RMI

Дополнительные возможности RMI

Дополнительные возможности RMI. Использование callback процедур Activation – технология, позволяющая создавать удаленные объекты Загрузка .class файлов с HTTP сервера. Java Advanced / Сериализация и RMI.

34 Заключение

Заключение

Заключение. Часть 4.

35 Ссылки по сериализации

Ссылки по сериализации

Ссылки по сериализации. Java Object Serialization Specification // http://java.sun.com/j2se/1.5.0/docs/guide/serialization/spec/serialTOC.html Object Serialization (Guide) // http://java.sun.com/j2se/1.5.0/docs/guide/serialization/index.html Serialization (Tutorial) // http://java.sun.com/developer/onlineTraining/Programming/BasicJava2/serial.html Serialization FAQ // http://java.sun.com/products/jdk/serialization/faq/. Java Advanced / Сериализация и RMI.

36 Ссылки по RMI

Ссылки по RMI

Ссылки по RMI. RMI (Guide & tutotials) http://java.sun.com/j2se/1.5.0/docs/guide/rmi/ Java RMI Specification // http://java.sun.com/j2se/1.5.0/docs/guide/rmi/spec/rmiTOC.html RMI Tutorial // http://java.sun.com/developer/onlineTraining/rmi/RMI.html. Java Advanced / Сериализация и RMI.

37 Вопросы

Вопросы

Вопросы. Java Advanced / Сериализация и RMI.

«Сериализация»
Сайт

5informatika.net

115 тем