Разделы презентаций


Виклик віддалених МЕТОДІВ

Содержание

ХНУРЕ, Кафедра Інформатикиe-mail: informatika@kture.kharkov.uaЗмістRMI-ТехнологіяПросте RMI-Додаток клієнт-серверКрок 1. Введіть і компілюйте вихідний кодКрок 2. Генерує заглушки і скелетиКрок 3. Встановіть файли на машинах сервера і клієнтаКрок 4. Запустіть RMI-Реєстр на машині сервераКрок

Слайды и текст этой презентации

Слайд 1

Виклик віддалених МЕТОДІВ
Лекція 11
доц.кафедри Інформатики Сінельнікова Т.Ф.

Виклик віддалених МЕТОДІВЛекція 11 доц.кафедри Інформатики Сінельнікова Т.Ф.

Слайд 2ХНУРЕ, Кафедра Інформатики
e-mail: informatika@kture.kharkov.ua
Зміст
RMI-Технологія
Просте RMI-Додаток клієнт-сервер
Крок 1. Введіть і компілюйте

вихідний код
Крок 2. Генерує заглушки і скелети
Крок 3. Встановіть файли

на машинах сервера і клієнта
Крок 4. Запустіть RMI-Реєстр на машині сервера
Крок 5. Запустіть сервер
Крок 6. Запустіть клієнта
ХНУРЕ, Кафедра Інформатикиe-mail: informatika@kture.kharkov.uaЗмістRMI-ТехнологіяПросте RMI-Додаток клієнт-серверКрок 1. Введіть і компілюйте вихідний кодКрок 2. Генерує заглушки і скелетиКрок

Слайд 3ХНУРЕ, Кафедра Інформатики
e-mail: informatika@kture.kharkov.ua
RMI-Технологія
Виклик віддалених методів (RMI,Remote Method Invocation) Дозволяє

Java-Об'єкту, який виконується на одній машині, викликати метод об'єкта Java,

Що виконується на іншій машині.
Ця властивість є важливим через те, що дозволяє будувати розподілені додатки.
ХНУРЕ, Кафедра Інформатикиe-mail: informatika@kture.kharkov.uaRMI-ТехнологіяВиклик віддалених методів (RMI,Remote Method Invocation) Дозволяє Java-Об'єкту, який виконується на одній машині, викликати

Слайд 4ХНУРЕ, Кафедра Інформатики
e-mail: informatika@kture.kharkov.ua
Просте RMI-Додаток клієнт-сервер

Ця програма використовує чотири вихідних

файлу.

ХНУРЕ, Кафедра Інформатикиe-mail: informatika@kture.kharkov.uaПросте RMI-Додаток клієнт-серверЦя програма використовує чотири вихідних файлу.

Слайд 5ХНУРЕ, Кафедра Інформатики
e-mail: informatika@kture.kharkov.ua
Крок 1. Введіть і компілюйте вихідний код

Перший

файл, AddServerIntf.java, Визначає віддалений інтерфейс, який забезпечується сервером. Він містить

один метод, який приймає два параметри і повертає їх суму. Всі вилучені інтерфейси повинні розширювати Remote-Інтерфейс, який є частиною java.rmi.Remote не визначає жодних членів. Його мета - просто вказати, що інтерфейс використовує віддалені методи. Всі вилучені методи можуть викидати винятку RemoteException.


import java.rmi. *;
public interface AddServerlntf extends Remote {
double add (double d1, double d2) throws RemoteException;}
ХНУРЕ, Кафедра Інформатикиe-mail: informatika@kture.kharkov.uaКрок 1. Введіть і компілюйте вихідний кодПерший файл, AddServerIntf.java, Визначає віддалений інтерфейс, який забезпечується

Слайд 6ХНУРЕ, Кафедра Інформатики
e-mail: informatika@kture.kharkov.ua
Крок 1. Введіть і компілюйте вихідний код

Другий

вихідний файл, AddServerImpl.java, Реалізує віддалений інтерфейс. Реалізація методу add ()

- Пряма. Всі віддалені об'єкти повинні розширювати unicastRemoteObject, Який забезпечує функціональні можливості об'єктів на віддалених машинах. (В даний час підтримується лише односпрямовані (unicast) Сервери, т. е. RMI не підтримує конфігурацій, що включають реплікованих сервери.)

import java.rmi. *; import java.rmi.server. *;
public class AddServerImpl extends UnicastRemoteObject implements AddServerlntf {
public AddServerimpl () throws RemoteException { }
public double add (double d1, double d2) throws RemoteException {return d1 +d2;}}
ХНУРЕ, Кафедра Інформатикиe-mail: informatika@kture.kharkov.uaКрок 1. Введіть і компілюйте вихідний кодДругий вихідний файл, AddServerImpl.java, Реалізує віддалений інтерфейс. Реалізація

Слайд 7ХНУРЕ, Кафедра Інформатики
e-mail: informatika@kture.kharkov.ua
Крок 1. Введіть і компілюйте вихідний код
Третій

вихідний файл, AddServer.Java, Містить програму main() Для машини

сервера. Її первинна функція повинна оновити RMI-Реєстр на цій машині. Це робиться за допомогою методу rebind () класу Naming (З java.rmi). Зазначений метод пов'язує ім'я з об'єктної посиланням. Перший аргумент методу - рядок, який іменує сервер як "AddServer". Його другий аргумент - посилання на екземпляр AddServerImpi.

import java.net. *; import java.rmi. *;
public class AddServer (
public static void main (String args []) {try {
AddServerimpi addServerlmpl = new AddServerImpi (); Naming.rebindl "AddServer", addServerlmpl);)
catch(Exception e) {System.out.println ("Exception:" + e);}
}}
ХНУРЕ, Кафедра Інформатикиe-mail: informatika@kture.kharkov.uaКрок 1. Введіть і компілюйте вихідний кодТретій вихідний файл,  AddServer.Java, Містить програму

Слайд 8ХНУРЕ, Кафедра Інформатики
e-mail: informatika@kture.kharkov.ua
Крок 1. Введіть і компілюйте вихідний код
Четвертий

вихідний файл, Addclient. java, реалізує сторону клієнта цього розподіленого додатка.

Addciient.java вимагає трьох параметрів командного рядка. Перший - IP-Адреса або ім'я машини сервера. Другий і третій параметри - два числа, які потрібно підсумувати.

ХНУРЕ, Кафедра Інформатикиe-mail: informatika@kture.kharkov.uaКрок 1. Введіть і компілюйте вихідний кодЧетвертий вихідний файл, Addclient. java, реалізує сторону клієнта

Слайд 9ХНУРЕ, Кафедра Інформатики
e-mail: informatika@kture.kharkov.ua
Крок 1. Введіть і компілюйте вихідний код

Після

введення всього коду використовуйте Java-Компілятор (Javac), щоб компілювати чотири вихідних

файлу, які ви створили.
ХНУРЕ, Кафедра Інформатикиe-mail: informatika@kture.kharkov.uaКрок 1. Введіть і компілюйте вихідний кодПісля введення всього коду використовуйте Java-Компілятор (Javac), щоб

Слайд 10ХНУРЕ, Кафедра Інформатики
e-mail: informatika@kture.kharkov.ua
Крок 1. Введіть і компілюйте вихідний код
Додаток

починається з формування рядка, який слід синтаксису URL. Цей URL

використовує протокол rmi. Рядок включає IP-Адреса або ім'я сервера і рядок "AddServer". Потім програма викликає метод lookup про класу Naming. Цей метод приймає один аргумент, rmi URL, і повертає посилання на об'єкт типу AddServerintf. Всі віддалені виклики методів можна направити до цього об'єкта.
ХНУРЕ, Кафедра Інформатикиe-mail: informatika@kture.kharkov.uaКрок 1. Введіть і компілюйте вихідний кодДодаток починається з формування рядка, який слід синтаксису

Слайд 11ХНУРЕ, Кафедра Інформатики
e-mail: informatika@kture.kharkov.ua
Крок 1. Введіть і компілюйте вихідний код
Програма

триває відображенням її параметрів і потім викликає віддалений метод add(),

Який повертає і потім роздруковує суму чисел.

import j ava.rmi. *; public class AddClient {
public static void main (String args [])
{ try {
String addServerURL = "rmi :/ /" + args [0] + "/ AddServer"; AddServerintf addServerlntf =
(AddServerintf) Naming.lookup (addServerURL); System.out.println ("The first number is:" + args [l]); double dl = Double.valueOf (args [1]). DoubleValue (); System.out . println ("The second number is:" + args [2]);
double d2 = Double.valueOf (args [2]). doubleValue (); System.out.println ("The sum is:" + addServerlntf.add (dl, d2));} catch (Exception e) {
System.out.println ("Exception:" + e);}}} "
ХНУРЕ, Кафедра Інформатикиe-mail: informatika@kture.kharkov.uaКрок 1. Введіть і компілюйте вихідний кодПрограма триває відображенням її параметрів і потім викликає

Слайд 12ХНУРЕ, Кафедра Інформатики
e-mail: informatika@kture.kharkov.ua
Крок 2. Генерує заглушки і скелети
Перед використанням

клієнта і сервера потрібно згенерувати необхідну заглушку, а також кістякову

схему.
У контексті RMI заглушка (stub) - це Java-Об'єкт, який постійно перебуває на машині клієнта. Його функція полягає в поданні тих же інтерфейсів, що і на віддаленому сервері. Виклики віддаленого методу, ініційовані клієнтом, фактично спрямовуються до заглушки. Заглушка працює з іншими частинами RMI системи для формулювання запиту, який надсилається до віддаленої машині.
ХНУРЕ, Кафедра Інформатикиe-mail: informatika@kture.kharkov.uaКрок 2. Генерує заглушки і скелетиПеред використанням клієнта і сервера потрібно згенерувати необхідну заглушку,

Слайд 13ХНУРЕ, Кафедра Інформатики
e-mail: informatika@kture.kharkov.ua
Крок 2. Генерує заглушки і скелети
Віддалений метод

може приймати параметри, які є простими типами або об'єктами. В

останньому випадку об'єкт може мати посилання до інших об'єктів. Вся ця інформація повинна бути відправлена ​​віддаленій машині. Об'єкт, який передається як параметр виклику віддаленого методу, повинен бути серіалізовать (перетворений в послідовну форму) і посланий на віддалену машину.
Скелетні схеми (скелети) в Java 2 не використовуються. Однак вони потрібні для RMI моделі Java 1.1.
Скелет (skelton) - Це об'єкт Java, Який постійно перебуває на машині сервера. Він працює з іншими частинами RMI системи Java 1.1, щоб приймати запити, виконувати десеріалізацію і викликати відповідний код на сервері.
ХНУРЕ, Кафедра Інформатикиe-mail: informatika@kture.kharkov.uaКрок 2. Генерує заглушки і скелетиВіддалений метод може приймати параметри, які є простими типами

Слайд 14ХНУРЕ, Кафедра Інформатики
e-mail: informatika@kture.kharkov.ua
Крок 2. Генерує заглушки і скелети
Якщо клієнтові

повинен бути повернений відповідь, виконується зворотний процес. Зверніть увагу, що

якщо об'єкти повертаються клієнтові, то кошти сериализации і десеріалізациі теж використовуються.
Щоб генерувати заглушки і скелети, потрібно використовувати інструмент, званий компілятором RMI,який викликається з командного рядка так:
rmic AddServerlmpl
Дана Команда Генерує два нові файлу: AddServerlmpLSkel.class (Скелет) і AddServerimpLStub.class (Заглушка).
При використанні rmic переконайтеся, що CLASSPATH включає поточний каталог. За замовчуванням rmic генерує як заглушку, так і скелетний файл.
ХНУРЕ, Кафедра Інформатикиe-mail: informatika@kture.kharkov.uaКрок 2. Генерує заглушки і скелетиЯкщо клієнтові повинен бути повернений відповідь, виконується зворотний процес.

Слайд 15ХНУРЕ, Кафедра Інформатики
e-mail: informatika@kture.kharkov.ua
Крок 3. Встановіть файли на машинах сервера

і клієнта
Скопіюйте AddClient.class,AddServerImpl_Stub.class іAddServerlntf.class в каталог на машині клієнта,
AddServerlntf

.class, AddServerlmpl.class, AddServerImpl_Skel.class, AddServerImpl__Stub.class і AddServer.class - В каталог на машині сервера.
ХНУРЕ, Кафедра Інформатикиe-mail: informatika@kture.kharkov.uaКрок 3. Встановіть файли на машинах сервера і клієнтаСкопіюйте AddClient.class,AddServerImpl_Stub.class іAddServerlntf.class в каталог на

Слайд 16ХНУРЕ, Кафедра Інформатики
e-mail: informatika@kture.kharkov.ua
Крок 4. Запустіть RMI-Реєстр на машині сервера
JDK

забезпечує програму, яка називається rmiregistry, Яка виконується на машині сервера.

Вона відображає імена об'єктних посилань. Спочатку, перевірте, щоб мінлива середовища CLASSPATH включала каталог, в якому розташовані ваші файли. Потім запустіть RMI-Реєстр з командного рядка:
start rmiregistry
Коли ця команда поверне управління, ви повинні побачити, що було створено нове вікно. Поки ви виконуєте експерименти з RMI-Прикладом, потрібно залишити це вікно відкритим.
ХНУРЕ, Кафедра Інформатикиe-mail: informatika@kture.kharkov.uaКрок 4. Запустіть RMI-Реєстр на машині сервераJDK забезпечує програму, яка називається rmiregistry, Яка виконується

Слайд 17ХНУРЕ, Кафедра Інформатики
e-mail: informatika@kture.kharkov.ua
Крок 5. Запустіть сервер

Програма сервера запускається наступного

командним рядком:

Java AddServer

Нагадаємо, що програма AddServer створює екземпляр AddserverImpl

і реєструє цей об'єкт з ім'ям "AddServer".
ХНУРЕ, Кафедра Інформатикиe-mail: informatika@kture.kharkov.uaКрок 5. Запустіть серверПрограма сервера запускається наступного командним рядком: Java AddServerНагадаємо, що програма AddServer

Слайд 18ХНУРЕ, Кафедра Інформатики
e-mail: informatika@kture.kharkov.ua
Крок 6. Запустіть клієнта
Програмне забезпечення Addclient вимагає

три параметри: ім'я або IP-Адресу машини сервера і два числа,

які повинні бути підсумовані. Ви можете викликати його з командного рядка, використовуючи один з двох форматів:
Java AddClient serverl 8 вересень Java AddClient 11.12.13.14 8 вересня

У першому рядку вказується ім'я сервера.

Другий рядок використовує його IP-Адресу (11. 12.13.14).
ХНУРЕ, Кафедра Інформатикиe-mail: informatika@kture.kharkov.uaКрок 6. Запустіть клієнтаПрограмне забезпечення Addclient вимагає три параметри: ім'я або IP-Адресу машини сервера

Слайд 19ХНУРЕ, Кафедра Інформатики
e-mail: informatika@kture.kharkov.ua
Крок 6. Запустіть клієнта
Ви можете перевірити даний

приклад, не маючи віддаленого сервера. Щоб зробити це, просто встановіть

всі програми на тій же самій машині, запустіть rmiregistry, Потім запустіть AddSever І потім - AddClient, Використовуючи наступну командний рядок:
Java AddClient 127.0.0.1 8 9
Тут, адреса 127.0.0.1 - це адреса "зворотної петлі" для локальної машини. Використання цієї адреси дозволяє здійснювати повний RMI-Механізм без фактичної необхідності установки сервера на віддаленому комп'ютері.
У будь-якому випадку приклад виведення цієї програми виглядає так:
The first number is: 8 The second number is: 9 The sum is: IV
ХНУРЕ, Кафедра Інформатикиe-mail: informatika@kture.kharkov.uaКрок 6. Запустіть клієнтаВи можете перевірити даний приклад, не маючи віддаленого сервера. Щоб зробити

Слайд 20Дякую за увагу!

Дякую за увагу!

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика