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

1.1.2 Ior-доступ до віддалених об'єктів

Об'єктне посилання спеціального типу IOR (Interoperable Object Reference) - стандартний формат об'єктного посилання для розподілених об'єктів.

Кожний CORBA-об'єкт має IOR-посилання. IOR-посилання - це дескриптор, що унікально ідентифікує об'єкт. У той час як звичайний вказівник містить просту машинну адресу для об'єкта, IOR-посилання може містити номер порту, ім'я хоста (ім'я комп'ютера в мережі), об'єктний ключ та ін.

Стандартне IOR-посилання діє як різновид розподіленого вказівника на віддалений об'єкт. Після того як клієнтська програма отримає доступ до IOR-посилання об'єкта, можна використовувати брокер об'єктних запитів для взаємодії з віддаленим об'єктом за допомогою виклику методів, механізму передачі параметрів, повернення значень і т.п.

Одна з головних властивостей IOR-посилання полягає в тому, що його можна зберігати як простий рядок і передавати іншим програмам. Передачу IOR-посилання найпростіше реалізувати за допомогою аргументів командного рядка, перемінних осередку або файлів. IOR-посилання можна відправити по електронній пошті або за допомогою протоколу передачі файлів (File Transfer Protocol - FTP). IOR-посилання спільно використовують файлові системи, і їх можна завантажувати з Web-сторінок.

1.1.3 Мова idl

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

Одне з основних призначень мови IDL - відокремити інтерфейс класу від його реалізації. Але для визначення самих функцій-членів і членів даних IDL не використовується. Мова IDL визначає тільки інтерфейс функції. Основні ключові слова IDL перераховані в таблиці 1.1.

Таблиця 1.1 - Ключові слова IDL

abstract

Enum

native

struct

Any

factory

Object

supports

attribute

FALSE

octet

typedef

boolean

Fixed

oneway

unsigned

Case

float

out

union

Char

in

raises

ValueBase

const

inout

readonly

valuetype

Cell

interface

sequence

void

double

long

short

wchar

exception

Module

string

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

Наведемо приклад IDL-визначення:

interface Counter

{

long count(in string msg);

};

Це визначення починається із ключового слова CORBA interface. Зверніть увагу на те, що дане оголошення інтерфейсу Counter не включає жодної перемінної. Метод count() приймає як параметр одне значення типу string. Оголошення типу параметра супроводжується ключовим словом CORBA in, що говорить про те, що даний параметр є вхідним. Це оголошення класу зберігається в окремому вихідному файлі Counter.idl. Вихідні файли, що містять IDL-визначення, повинні мати idl-розширення.

Перш ніж такий файл можна буде використовувати, його необхідно перетворити до java-формату. Це перетворення, як правило, здійснюють із використанням IDL-компілятора.

Всі CORBA-реалізації включають IDL-компілятори. Такі компілятори існують для мов С, Smalltalk, C++, Java і ін.

У технології Java стандартний компілятор, що переводить IDL-опис у вихідний модуль мовою Java, називається idlj. Він входить у комплект Java IDL.

IDL-компілятор перетворить IDL-визначення в код відповідної мови.

У цьому випадку java IDL-компілятор перетворить оголошення інтерфейсу в java-код. Java IDL-компілятор викликається з використанням команди:

idlj -fall Counter.idl

Ключ –fall указує компілятору створити набір java-файлів, необхідних для роботи CORBA-додатка. Їх назва і призначення наведені в таблиці 1.2.

Таблиця 1.2 - Назва й призначення java-файлів CORBA-додатка, що сформовані IDL-компілятором

Файл *.java

Призначення

Counter

Інтерфейс Counter, що розширює інтерфейс CounterOperations

_CounterImplBase

Скелетон, що реалізує Counter

_CounterStub

Стаб, що реалізує Counter

CounterHelper

Допоміжний клас

CounterHolder

Реалізація CORBA-вводу/виводу

CounterOperations

Java-інтерфейс IDL-інтерфейсу Counter

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