Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
[КОМП СИСТЕМЫ] / metod-ks-2.doc
Скачиваний:
35
Добавлен:
07.02.2016
Размер:
421.89 Кб
Скачать

1.2.2 З'єднання із сервером без використання служби імен

Основна ідея цього методу полягає в тому, що сервер зберігає екземпляр класу віддаленого об'єкта (СounterServant) у вигляді текстового файлу в будь-якім місці, доступному клієнту. Клієнт завантажує з файлу дані (в об'єкт String) і перетворює спеціальними методами в об'єктне посилання на віддалений об'єкт.

Реалізaція полягає в наступному.

Видалимо частину коду - це стосується й клієнта (СounterServer.java і СounterClient.java), а саме:

1.2.2.1 Виключимо з коду бібліотеки

import org.omg.CosNaming.*;

import org.omg.CosNaming.NamingContextPackage.*;

замість них вставимо

import java.io.*;//пакет для роботи з потоками й

//файлами

import java.io.DataInputStream;

1.2.2.2 Видалимо код відповідний п. 1.2.1.4 п. 3-4, 1.2.1.5 п.2-3.

Замість вилученого коду вставимо - для сервера:

//перетворимо об'єкт у рядок

String ior = orb.object_to_string(counterRef);

//створюємо файл test_file

FileOutputStream fos = new FileOutputStream(“ior.txt”);

PrintStream ps = new PrintStream(fos);

//записуємо в нього дані

ps.print(ior);

ps.close();

для клієнта:

//відкриваємо файл

FileInputStream fis = new FileInputStream(“ior.txt”);

DataInputStream dis = new DataInputStream(fis);

//читаємо дані

String ior = dis.readLine();

//перетворимо в об'єкт CORBA

org.omg.CORBA.Object obj = orb.string_to_object(ior);

//отримуємо посилання на віддалений об'єкт

Counter counterRef = testHelper.narrow(obj);

Скомпілюємо додатки, запустимо сервер і клієнт аналогічно тому, як ми робили це раніше (сервер імен запускати в цьому випадку не треба).

1.2.3.1 Завдання 1 – Виконайте додаток, описаний в п. 1.2.1.

1.2.3.2 Завдання 2 – Виконайте додаток, описаний в п. 1.2.1, без икористання служби імен (див. п. 1.2.2).

1.2.3.3 Завдання 3 – самостійна робота за індивідуальним варіантом

Створіть java CORBA-додаток, сервер якого по запиту клієнта проводить обчислення у відповідності за математичною формулою Вашого варіанта (таблиця варіантів наведена у Додатку А). Клієнт передає серверу чисельні значення перемінних, зазначених у формулі.

1.3 Контрольні питання

  1. Зобразіть архітектуру специфікації CORBA.

  2. У чому різниця між механізмом RPC і специфікацією CORBA?

  3. Наведіть синтаксис оголошення інтерфейсу мовою IDL.

  4. Що являє собою Java IDL?

  5. Коротко опишіть призначення ORB.

  6. Що являє собою IOR-посилання?

  7. Що являє собою servant CORBA-додатка?

  8. Для чого потрібні протоколи GIOP і IIOP і в чому різниця між ними?

  9. Укажіть основні етапи формування коду сервера CORBA?

  10. Укажіть основні етапи формування коду клієнта CORBA?

  11. Яким чином можна створити CORBA-додаток без використання служби імен?

  12. Укажіть основні етапи запуску CORBA-додатка?

1.4 Зміст письмового звіту

Письмовий звіт повинен містити.

1. Тему та мету роботи.

2. Тексти idl-файлів і рядка програми-клієнта й сервера, які були скоректовані й уведені при вирішенні індивідуального завдання – Завдання 3.

3. Відповіді на контрольні питання.

4. Висновки.

Письмовий звіт повинен бути оформлений на комп‘ютері, мати титульну сторінку із зазначенням назви дисципліни, теми лабораторної роботи, автора звіту та викладача, дати складання письмового звіту. Далі на кожній сторінці звіту в колонтитулах має міститись прізвище, ім‘я та номер групи студента (верхній колонтитул), тема лабораторної роботи та номер сторінки (нижній колонтитул). В іншому випадку звіт може бути оформлений в рукописному варіанті.

Соседние файлы в папке [КОМП СИСТЕМЫ]