Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
HOR / TOTAL.DOC
Скачиваний:
8
Добавлен:
16.04.2013
Размер:
312.83 Кб
Скачать

3.5. Входные и выходные данные.

В соответствии с предназначением системы входными данными является вызов метода объекта или соответствующей функции, а выходными - результат вызова метода/функции (если имеется) или возникновение исключения. Если операция идет только в одну сторону, то выходных данных нет. При выполнении запроса сервером объекта могут быть выполнены разные побочные действия.

При этом запрос может идти различными способами, в зависимости от типов взаимодействующих объектов5и их местонахождения. При этом есть следующие критерии:

1. Принадлежность. Объекты могут принадлежать (a) одному или(b) разным процессам, как показано на рисунке3-2.

Рисунок 3-2. Объекты и процессы.

2. Язык программирования. Объекты могут быть написаны (a) на одном и том же языке программирования или(b) на разных языках (рисунок3-3).

Рисунок 3-3. Объекты и языки программирования.

При создании объекта клиент производит вызов функций библиотеки, а та в свою очередь делает запрос к серверу. Далее способ взаимодействия зависит от того, где находятся эти два объекта. Если оба объекта принадлежат одному приложению и написаны на одном языке программирования (1a-2a), то сразу после создания объекта объект-клиент может нормально вызывать методы используемого объекта безо всяких посредников. Если же объекты написаны на разных языках (1a-2b), то необходим посредник -proxy-объект написанный на языке клиента. Он будет транслировать вызовы методов в запросы в форматеGIOP и передавать их библиотеке, а та - процедуре динамического выполнения запросов. Эта ситуация иллюстрируется рисунком 3-4.

Рисунок 3-4. Взаимодействие объектов в рамках одного процесса.

Если взаимодействующие между собой объекты находятся в разных выполняемых приложениях, то независимо от того, на каком языке они написаны, взаимодействие происходит либо через сервер, либо через прямое соединение, установленное между двумя библиотеками. В этом случае наличие объекта-proxy обязательно (рисунок3-5).

Рисунок 3-5. Взаимодействие объектов, находящихся в разных процессах.

4. Протокол обменаGiop.

За исключением редкого случая прямых вызовов методов между классами одного и того же языка программирования необходим механизм кодирования вызова метода в некоторую последовательность байт (byte stream) у клиента и декодирования этой последовательности у сервера. Для этой цели спецификацияCORBA определяет Общий Протокол обмена между Брокерами Объектных Запросов(General Inter-Orb Protocol - GIOP). Кроме того, определен протокол передачи сообщений протоколаGIOPповерх транспортного протоколаTCP/IP, являющегося основным видом взаимодействия вInternet, ввиду чего этот протокол получил название Протокола обмена между Брокерами Объектных вInternet (Internet Inter-Orb Protocol - IIOP). ПротоколIIOP должен поддерживаться всеми Брокерами Объектных Запросов независимо от особенностей их реализации, что является главным требованием для обеспечения взаимодействия между произвольнымиORB-ами двух разных и совершенно независимых производителей.

Соседние файлы в папке HOR