- •Міністерство освіти і науки україни
- •1 Лабораторна робота №3 corba
- •1.1 Теоретичні відомості про corba
- •1.1.1 Загальні відомості про corba
- •1.1.2 Ior-доступ до віддалених об'єктів
- •1.1.3 Мова idl
- •1.2 Завдання до лабораторної роботи
- •1.2.1 Порядок створення java corba-додатка
- •1.2.2 З'єднання із сервером без використання служби імен
- •1.3 Контрольні питання
- •1.4 Зміст письмового звіту
- •2 Лабораторна робота №4 java-сервлети
- •2.1 Теоретичні відомості
- •2.2 Завдання до лабораторної роботи
- •2.2.1 Створення і розгортання Web-додатку на основі сервлет-технології
- •2.2.2 Перший сервлет
- •2.2.3 Завдання 1
- •2.2.4 Робота сервлетів з протоколом http
- •2.2.5 Завдання 2
- •2.2.6 Завдання 3 – самостійна робота за індивідуальним варіантом
- •2.3 Контрольні питання
- •2.4 Зміст письмового звіту
- •Література для додаткового вивчення
- •Додаток а Індивідуальні варіанти до лабораторної роботи №3
- •Додаток б Конфігурування Web-додатків з використанням сервлет-технології
- •Додаток в Основні поняття html
- •Обов'язкові мітки html-документів
- •Форми html-документів
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 Контрольні питання
Зобразіть архітектуру специфікації CORBA.
У чому різниця між механізмом RPC і специфікацією CORBA?
Наведіть синтаксис оголошення інтерфейсу мовою IDL.
Що являє собою Java IDL?
Коротко опишіть призначення ORB.
Що являє собою IOR-посилання?
Що являє собою servant CORBA-додатка?
Для чого потрібні протоколи GIOP і IIOP і в чому різниця між ними?
Укажіть основні етапи формування коду сервера CORBA?
Укажіть основні етапи формування коду клієнта CORBA?
Яким чином можна створити CORBA-додаток без використання служби імен?
Укажіть основні етапи запуску CORBA-додатка?
1.4 Зміст письмового звіту
Письмовий звіт повинен містити.
1. Тему та мету роботи.
2. Тексти idl-файлів і рядка програми-клієнта й сервера, які були скоректовані й уведені при вирішенні індивідуального завдання – Завдання 3.
3. Відповіді на контрольні питання.
4. Висновки.
Письмовий звіт повинен бути оформлений на комп‘ютері, мати титульну сторінку із зазначенням назви дисципліни, теми лабораторної роботи, автора звіту та викладача, дати складання письмового звіту. Далі на кожній сторінці звіту в колонтитулах має міститись прізвище, ім‘я та номер групи студента (верхній колонтитул), тема лабораторної роботи та номер сторінки (нижній колонтитул). В іншому випадку звіт може бути оформлений в рукописному варіанті.